在C++的构造函数中我们应该把所有成员变量都初始化,如果我们忘记了初始化一个成员指针,会发生什么呢?
假设有如下代码:
class my { public: my(){}; ~my(){delete[] r;} private: float* r; }; class my2 { private: my m; }; int main() { float* f; my m; my2* m2= new my2(); //delete[] f; return 0; }
Visual Studio 2012调试结果如下:
Visual Studio 2008调试结果如下:
可以复习复习这个,oxcdcdcdcd是什么?
如果把上面代码类my的构造函数和析构函数注释掉,那么类my和my2就变成了POD。POD就是Plain Old Data Structure,就是C++中没有用户自己定义的构造函数,析构函数和虚函数的类,并且每个成员也是POD。
Visual Studio2012和2008的调试结果都如下: