【发布时间】:2013-09-19 12:35:33
【问题描述】:
为什么不调用析构函数?
尽管我已经为 A 类和 B 类编写了析构函数,但它并没有被调用。
#include<iostream.h>
#include<conio.h>
class A {
public :
A() {
cout<<"\nIn A const.";
}
~A() {
cout<<"\nIn A dest.";
}
};
class B : public A {
public :
B() {
cout<<"\nIn B const.";
}
~B() {
cout<<"\nIn B dest.";
}
};
int main() {
A a;
B b;
getch();
return 0;
}
为什么不调用构造函数?
【问题讨论】:
-
Cannot reproduce。为什么你认为他们没有被召唤?
-
因为你的编译器完全坏了?或者您正在运行与此代码不对应的可执行文件?你能发布一些重现问题的真实代码吗?
-
在不相关的注释上,更喜欢将新行粘贴在行尾(您甚至可以使用
cout << "My Text" << endl;)。这在程序执行后不会自动插入新行的终端中效果更好。回到问题:你使用的是什么编译器,我假设你已经包含了<iostream>?
标签: c++ class object destructor