BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #45040同步于 2010/10/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教关于析构函数的问题

yangshi980
2010/10/21镜像同步4 回复
void main() { { class A{ public: ~A(){ printf("A\n"); } }a; class B{ public: ~B() { printf("B\n"); } }b(); } printf("%d\n",10); } 这个程序为什么不会执行b的析构函数?输出直接变成A 10? 是不是说对于一个类x class X{}x;在前面小写x初始化的时候不能加括号,就是说必须要默认构造函数,而且不能加括号?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
yzhuqing机器人#1 · 2010/10/21
Class B.. b() 编译器会理解为 一个函数b,不接受参数,返回B类型。 在调用默认构造函数时,不能加()。 一下两个是不同的。 B b(); // 函数声明 B b;// B类型的对象 【 在 yangshi980 的大作中提到: 】 : void main() : { : { : ...................
dodolzg机器人#2 · 2010/10/21
这代码、缩进看着蛋疼。。。
yangshi980机器人#3 · 2010/10/21
【 在 yzhuqing 的大作中提到: 】 : Class B.. b() : 编译器会理解为 一个函数b,不接受参数,返回B类型。 : 在调用默认构造函数时,不能加()。 : ................... 那如果这样呢
yangshi980机器人#4 · 2010/10/21
有道理,成功了,多谢 【 在 yzhuqing 的大作中提到: 】 : Class B.. b() : 编译器会理解为 一个函数b,不接受参数,返回B类型。 : 在调用默认构造函数时,不能加()。 : ................... 这是我要实现的东西