返回信息流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初始化的时候不能加括号,就是说必须要默认构造函数,而且不能加括号?
这是一条镜像帖。来源:北邮人论坛 / cpp / #45040同步于 2010/10/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教关于析构函数的问题
yangshi980
2010/10/21镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
Class B.. b()
编译器会理解为 一个函数b,不接受参数,返回B类型。
在调用默认构造函数时,不能加()。
一下两个是不同的。
B b(); // 函数声明
B b;// B类型的对象
【 在 yangshi980 的大作中提到: 】
: void main()
: {
: {
: ...................
【 在 yzhuqing 的大作中提到: 】
: Class B.. b()
: 编译器会理解为 一个函数b,不接受参数,返回B类型。
: 在调用默认构造函数时,不能加()。
: ...................
那如果这样呢
有道理,成功了,多谢
【 在 yzhuqing 的大作中提到: 】
: Class B.. b()
: 编译器会理解为 一个函数b,不接受参数,返回B类型。
: 在调用默认构造函数时,不能加()。
: ...................
这是我要实现的东西