- 构造函数 & 析构函数
- 拷贝构造函数
- 友元函数(可以访问类的 private 和 protected 成员)
- 不能被继承
- 没有 this 指针
- 内联函数(编译时。编译器会把该函数的代码副本放置在备个调用该函数的地方):主要是为了解决函数调用的问题,对于普通的函数,是在运行时才被替代。
- 虚函数:(在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。)
- 例如:
A* a = new B(); a.fn()
,其中 B 类继承 A。实际调用的是 b 的 fn,虽然指针指向 A。
- 例如:
- 纯虚函数(接口):如果类中至少有一个函数被声明为纯虚函数,那么这个类就是抽象类。
- 成员函数的定义:
ReturnType ClassName :: FunctionName
- 运算符:
·
:成员访问运算符·*
,->*
成员指针访问运算符::
域运算符
- 命名空间:为了避免调用同名函数
// 第一个命名空间 namespace first_space{ void func(){ cout << “Inside first_space” << endl; } } // 第二个命名空间 namespace second_space{ void func(){ cout << “Inside second_space” << endl; } } int main () {
// 调用第一个命名空间中的函数 first_space::func();
// 调用第二个命名空间中的函数 second_space::func();
return 0; }
- 模板 template(泛型)
- 函数模版
- 类模板
```javascript
template <typename type> ret-type func-name(parameter list)
{
// 函数的主体
}
- 宏
- 替代文本:
#define macro-name replacement-text
- 参数宏:
#defineMIN(a,b)(a<b ? a : b)
- 条件编译
- 替代文本:
- 标准模板库:STL
- 容器::deque,list,vector,map
- 算法:排序、转换等
- 迭代器
- ·