- C++是C的超集,支持面向過程編程、面向對象編程和泛型編程
- 面向對象三大特性:封裝、繼承、多態(tài)
- 雙冒號作用域,::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++中無法編譯
- 函數(shù)檢測增強(參數(shù)類型、返回值、參數(shù)數(shù)量)
- 類型轉換增強(C++必須強制轉換)
- struct增強(可以包含函數(shù))
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中返回的是數(shù)值)
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++中合法
}
函數(shù)內const修飾,C中是偽常量,C++為符號表

image.png