看看吧,自己运行下,看我说的对不#include using namespace std;class A{public : A(){cout""""; static B b; C c;}int main(){ coutdispoint();}输出结果如下:First point=(12,6)Second point=(5,12)从执行结果可以 看到当你执行到下列语句时,TPoint a(12,6),*p=new TPoint(5,12);不仅定义了TPoint对象a和一个无名对象指针p,还自动调用了类的构造函数,也就是说在定义类的对象的时候就自动调用构造函数进行对象的初始化。这是因为编译器自动在a的定义点插入了一个TPoint::TPoint(12,6)的调用。析构的自己看吧,书上什么都有,我也是在书上看的。
|