慕课网中C++远征系列:起航篇、离港篇、封装篇上下、继承篇、多态篇、模板篇。

第1章 C++简介

1-1 C++简介

C++诞生地:贝尔实验室(Bell Lab)
C++之父:比雅尼·斯特劳斯特鲁普
2017年6月TIOBE编程语言排行榜
PHP不再是世界上最好的编程语言
Go语言可以称得上是互联网时代的C语言。
人生苦短,我用python!

C++语言的应用领域

1.嵌入式 2. 游戏编程 3. 网络编程 4. 系统编程
主要优点是节省资源,和运算速率块。

C与C++的关系

  • C语言是C++的子集,c++是c语言的母集。所有c语言的代码可以不变复制到c++运行环境中运行。c语言是面向过程的语言,而C++是面向过程的语言又是面向对象的语言。C语言的运行效率比c++更好,更高效。
  • 语法角度讲,C是C++的子集,C语言的代码拿到c++的语言环境下编译是没有问题的。
  • 从历史角度来说,c++实在c语言的基础上发展而来的,C语言面向过程,C++面向过程+支持面向对象。

第2章IDE环境搭建

IDE:集成开发环境(Integrate Development Environment)
一般包括代码编辑器、编译器、调试器和图形用户界面工具。

visual assistx

Visual AssistX是一款非常好的Microsoft Visual Studio插件,它可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到Visual Assist X为您带来的好处。
软件支持Microsoft Visual Studio 2003-2017,C/C++,C#,ASP,VisualBasic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等。使用Visual Assist X有助于提高开发过程的自动化和开发效率。

Resharper

ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE。它包括一系列丰富的能大大增加C#和Visual Basic .net开发者生产力的特征。使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范围内代码分析,快速代码更正,一步完成代码格式化和清理,业界领先的自动代码重构,高级的集成单元测试方案,和强大的解决方案内导航和搜索。实质上,ReSharper特征可用于C#,VB.NET,XML,ASP.NET,XAML,和构建脚本。ReSharper还为C#和VB.NET提供了增强的交叉语言功能,它使开发者可以有效的控制.net混合项目。

第4章 C++语言新特性

4-1 C++语言新特性

C语言中的数据类型

C++中新的数据类型

| |逻辑类型|真|假|
|:—:|:—:|:—:|:—:|
|C |没提供 |非0 | 0 |
|C++ |bool |true | false |

新的初始化方法

C语言所有变量定义必须位于函数体的最前面
C++所有变量随用随定义

4-2、4-4

C++中的输入和输出方法分别是cin和cout
cin使用“>>”进行连接,cout使用“<<”进行连接
且使用cin和cout时不必关注数据类型,也不必使用格式控制符

cout<<oct<<x<<endl;输出八进制数
cout<<dec<<x<<endl;输出十进制数
cout<<hex<<x<<endl;输出十六进制数
cout<<boolalpha<<x<<endl; 按照布尔方式输出

4-6C++之namespace

什么是命名空间

简言之:为程序划片取名字
命名空间:为程序划定空间
关键字及其命名形式:namespace 空间名
调用方法:空间名::调用元素名称
命名空间关键字:namespace如:namespace A,namespace B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
命名空间关键字:namespace
namespace A
{
int x = 0;
void f1();
void f2();
}

namespace B
{
int x = 2;
void f1();
void f3();
}

调用已完成命名的命名空间:
1.调用变量:
cont<<A::x<<endl;
2.调用函数:
B::f1();

4-8 namespace演示

未声明”cout””endl”标识符则需要包含,还需要使用这个相应的命名空间namespace std,也可以用std::cout,std::endl来代替,同理推广using namespace xxx与xxx::效果相同.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include"stdlib.h"
#include"iostream"
using namespace std;
namespace A
{
int x(1);
void fun(){

cout<<'A'<<endl;
}


}
namespace B
{
int x(2);
void fun()
{
cout<<'B'<<endl;

}
void fun2()
{
cout<<'C'<<endl;
}
}
using namespace B;
int main(void)
{
cout<<A::x<<endl;
A::fun();
fun();
fun2();
return 0;
}