- C++ const 指针
- const指针是指针变量的值一经初始化,就不可以改变指向,初始化是必要的。
- 当成员函数被声明为const时,如果试图修改对象的数据,编译器将视为错误。
- 如果声明了一个指向const对象的指针,则通过该指针只能调用const方法(成员函数)。
- C++ 指向const的指针
- 指针指向的内容是不能被修改的
- C++ 纯虚函数
- 抽象类的特点
- 不能构建对象,可以构建对象指针
- 一般拿来充当中间访问层
- C++ 虚析构函数
- virtual 作用:实现父类指针调用子类成员
- 虚析构函数实现非正常情况下的指针赋值导致的析构函数。父类指针被子类对象初始化,父类的析构函数必须使用虚析构函数
- C++ 内联函数
- 当编译器处理调用内联函数的语句时,不会将该语句编译成函数调用的指令,而是直接将整个函数体的代码插人调用语句处,就像整个函数体在调用处被重写了一遍一样
- 有了内联函数,就能像调用一个函数那样方便地重复使用一段代码,而不需要付出执行函数调用的额外开销。
- 很显然,使用内联函数会使最终可执行程序的体积增加。以时间换取空间,或增加空间消耗来节省时间
- 内联函数中的代码应该只是很简单、执行很快的几条语句。
- 如果一个函数较为复杂,它执行的时间可能上万倍于函数调用的额外开销,那么将其作为内联函数处理的结果是付出让代码体积增加不少的代价,却只使速度提高了万分之一,这显然是不划算的
- C++ const
- 类中使用const修饰函数防止修改非static类成员变量
- Typedef 简化指针的定义
- C++ extern C的作用
- extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。
- 加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。
- 由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;
- 而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名