1. 内部连接与外部链接
2. 各个类型的数值范围
int
long
unsignedlong
3. mutable
4. sizeof与strlen
对于类、结构体的大小,得注意数据对齐问题。
strlen是计算字符串的长度,直到’\0’为止,不包括’\0’。
5. 静态变量
静态变量存放在全局数据区,而sizeof计算栈中分配的大小,如果结构体中含有静态变量,结构体大小是不包括静态变量。
6. 成员变量
成员变量初始化顺序由声明顺序决定。
静态成员变量在一个类中,供所有对象共享,三字连珠的程序可以感受到。
7. 内联函数
编译时候替换。
8. 编译、链接的机制
对于一个空类,编译器默认产生4个成员函数:默认构造函数、析构函数、拷贝构造函数和赋值函数。
9. 引用
引用不能指向空值。
10. malloc/free和new/delete
11. 句柄
句柄是一个32位的整数,是一个指向指针的指针,主要维护一个对象的地址。Windows是一个以虚拟内存为基础的OS,内存管理器经常在内存中来回移动对象的真实物理地址,以满足各种应用程序的内存需要。那么为了始终能找到被移动的对象,Windows为各个应用程序腾出一些内存地址,用来专门登记各个应用对象在内存的地址变化,而这个地址本身是不变的,这个地址就是句柄。
12. 智能指针
13. 虚函数
14. 构造函数
默认构造函数、含参构造函数、拷贝构造函数
15. 友元
16. 结构体位制
struct A
{
intx:17;
inty:9;
intz:17;
};
17. cast机制
C++有4个类型转换操作符:const_cast、static_cast、dynamic_cast和reinterpret_cast。
18. 字符串与整型的互相转化
字符串转化为整数,可以采用每一位间’0’再乘10累加的方法。
i = atoi (char*);
整数转化为字符串,可以采用加’0’,再逆序的方法。
itoa(i, char*, 10);也可以使用sprintf(s,“%d”, 123);
19. 字符串与字符数组的区别
最明显的区别就是字符串会被默认地加上结束符’\0’。
对于字符串和字符数组的输出原则是遇到’\0’为止。
char str[] = “hello”;为字符数组申请6个字节的空间,把字符串值复制进去。
char* str = “hello”;申请一个指针str,使其指向字符串值。