- C++是C的超集,支持面向过程编程、面向对象编程和泛型编程
- 面向对象三大特性:封装、继承、多态
- 双冒号作用域,::var用于访问全局变量的值
- 命名空间可以嵌套
namespace A
{
int a = 10;
namespace B
{
int a = 20;
}
}
void test()
{
cout << A::B::a;
cout << A::a;
}
- 匿名命名空间:相当于写了static内容,只能在当前文件内使用
- 命名空间可以取别名:namespace B = A;
- C++对C的增强
- 全局变量检测增强
int a;
int a = 1;
//在C中可以编译,在C++中无法编译
- 函数检测增强(参数类型、返回值、参数数量)
- 类型转换增强(C++必须强制转换)
- struct增强(可以包含函数)
struct Person
{
int age;
int addAge()
{
age++;
}
};
int main() {
Person person;
person.age = 10;
person.addAge();
cout << person.age;
return EXIT_SUCCESS;
}
- bool类型:true(非零的值都会转成1)/false
- 三元运算符增强:返回值是变量(C中返回的是数值)
int main()
{
int a = 10;
int b = 20;
cout << (a > b ? a : b )<< endl;
a > b ? a : b = 100;
cout << b << endl;//100
return EXIT_SUCCESS;
}
- const增强
void fun()
{
const int m_A = 20;
int *p = &m_A;
*p = 200;//C中*p和m_A都为200,C++中*p=200,m_A=20
int a[m_A];//C中不合法,m_A为伪常量;C++中合法
}
函数内const修饰,C中是伪常量,C++为符号表
image.png