最近项目里的一个功能用到了c++语言,发现很多基础知识因长时间不用早已忘记,遂准备复习一下捡起来。
bool类型
自定义define int BOOL和原始的bool类型区别:前者占用4个字节;后者占用1个字节。
const关键字
用于修饰变量,表示常量。(一旦被定义,就难以被修改)
编译期不能被修改,运行时可修改
const指针
const T */T const *表示不能修改指针指向的内容,指针指向的值可以被修改。
const int * a = 3;
const int * b = 5;
a = 5(错误)
a = b(正确)
T * const 表示不能修改指针指向的值,指针指向的内容可以被修改。
const T * const 表示指针指向的值和内容均不能被改变。
const_cast类型转换
用于去掉const属性,将常量改为变量
内联函数
写在头文件里,用于简化函数的调用。和一般函数调用的差别在于效率更高,减少资源的调配过程。使用inline关键字修饰
debug时没有inline,是将其当作正常函数来调用。
引用
引用是变量的别名。其本质就是指针,存储的是变量的地址。
引用必须初始化,不能用常量赋值。
只有常量引用可以用常量赋值。
引用的关系一旦建立就无法修改。
命名空间和类的区别
命名空间可以避免命名冲突,方便模块化编程。
类是面对对象的概念,可以实例化。
C++里面没有 package这一个术语,有时可能会遇到两个类命名相同,为了避免名字冲突,c++引入了命名空间。
类this关键字
同一个类的对象其成员变量是独有的,但是成员函数是共有的。即数据私有,成员函数共用的。
在调用函数时是把对象的this指针传入了函数(__thiscall系统内部默认的关键字,无法调用),__stdcall,__cdcel,__fastcall
网友评论