并不意味着创建或销毁对象;3、 如果构造函数中动态分配了空间, 则显示调用构造函数会造成内存泄露. 创建对象时的隐式构造函数调用已经为对象分配了动态内存,当用创建好的对象显示调用构造函数时, 对象指向的动态内存更新为显示调用时所分配的, 对象生命周期结束时析构函数所释放掉的是后一次分配的动态...
a1.A::A(); // <2> 显示调用默认构造函数(写成a1.A()会报错) a1.A::A(7); // <3> 显示调用非默认构造函数(写成a1.A(7)会报错) a1.A::~A(); // <4> 显示调用析构函数, 但是此时对象a1并没有销毁(写成a1.~A()不会报错) // A a2(); // 这样写没报错, 但也没调用任何构造函...
a1.A::A(); // <2> 显示调用默认构造函数(写成a1.A()会报错) a1.A::A(7); // <3> 显示调用非默认构造函数(写成a1.A(7)会报错) a1.A::~A(); // <4> 显示调用析构函数, 但是此时对象a1并没有销毁(写成a1.~A()不会报错) // A a2(); // 这样写没报错, 但也没调用任何构造函...
显示调用构造函数和析构函数就像调用一般的函数一样,并不意味着创建或销毁对象; 如果构造函数中动态分配了空间, 则显示调用构造函数会造成内存泄露.创建对象时的隐式构造函数调用已经为对象分配了动态内存. 当用创建好的对象显示调用构造函数时, 对象指向的动态内存更新显示调用时所分配的, 对象生命周期结束时析构函数...