没有初始化的指针会是个什么值呢?

在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调试结果如下:

image

Visual Studio 2008调试结果如下:

image

 

可以复习复习这个,oxcdcdcdcd是什么?

 

如果把上面代码类my的构造函数和析构函数注释掉,那么类my和my2就变成了POD。POD就是Plain Old Data Structure,就是C++中没有用户自己定义的构造函数,析构函数和虚函数的类,并且每个成员也是POD。

Visual Studio2012和2008的调试结果都如下:

image

posted on 2013-03-15 16:31  fresky  阅读(547)  评论(0编辑  收藏  举报

导航