C++ 50-55 对象模型分析
50 C++对象模型分析(上)
回归本质
-
class是一种特殊的struct
- 在内存中class依旧可以看作变量的集合
- class与struct遵循相同的内存对齐规则
- class中的成员函数与成员变量是分开存放的
- 每个对象有独立的成员变量
- 所有对象共享类中的成员函数
-
值得思考的问题
class A {
int i;
int j;
char c;
double d;
public:
void print() {
cout << "i = " << i << ", "
<< "j = " << j << ", "
<< "c = " << c << ", "
<< "d = " << d << endl;
}
};
struct B {
int i;
int j;
char c;
double d;
};
sizeof(A) = ? //20 bytes
sizeof(B) = ? //20 bytes