1、  结构体的大小等于结构体内最大成员大小的整数倍
2、    结构体内的成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍,比如说double型成员相对于结构体的首地址的地址偏移量应该是8的倍数。
3、  为了满足规则1和2编译器会在结构体成员之后进行字节填充!


C++中为什么用模板类的原因?答:(1)可用来创建动态增长和减小的数据结构 (2)它是类型无关的,因此具有很高的可复用性。 (3)它在编译时而不是运行时检查数据类型,保证了类型安全 (4)它是平台无关的,可移植性 (5)可用于基本数据类型


c++线程安全:线程安全问题都是由全局变量及静态变量引起的;若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的,若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全;POSIX线程标准要求C标准库中的大多数函数具备线程安全性;c++标准库里面的string保证不是线程安全的


static数据成员必须在类体之外进行定义。通常在定义时才进行初始化。但是,当类型为const  static时的×××时可以在类体内进行初始化。

静态数据成员可以直接用类名调用。

静态数据成员不可以被类的对象调用,这句话是的。

静态数据成员不受private控制符的作用,这句话是的。


new/delete都是要分两步操作的:new分配内存,并且调用对象的构造函数初始化一个对象;delete调用相应的析构函数,然后释放内存

malloc/free只是分配内存/回收内存,

malloc需要头文件"stdlib.h"或者"malloc.h"

new/delete都是内建的操作符,而malloc是一个函数