(C++基础复习提问系列)1.指向类对象的指针释放时是否会调用类的析构函数?
C++ Primer3rd上:
"当我们用指针存储复杂类对象时,在vector中插入10000个元素的开销从6.70s减少到0.82s.为什么?(首先,...),其次指向类对象的指针的拷贝和释放不需要调用该类的拷贝构造函数和析构函数."
"指向类对象的指针的拷贝和释放不需要调用该类的拷贝构造函数和析构函数."
根据这句话我的测试代码如下:
#include<iostream>
using namespace std;
class A
{
public:
A(){}
A(const A& a)
{
cout<<"A(const A&)\n";
}
~A(){ cout<<"~A()";}
};
int main()
{
A *p = new A;
A q(*p);
delete p;
getchar();
}
Dev c++下
输出:
A(const A&)
~A()
确实是调用了.这是怎么回事呢?是我的理解错误了吗?