求一个析构函数的例子;

zhulinjia 2008-08-29 03:56:24
速度
...全文
120 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Silitex 2008-08-29
  • 打赏
  • 举报
回复
啊~喍
richbirdandy 2008-08-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jieao111 的回复:]
lz像皇帝似的
[/Quote]
是啊 给200分再装皇帝
大牛~Daniel 2008-08-29
  • 打赏
  • 举报
回复
不明白LZ的意思?
你是想知道析构函数怎么写么?
就是类名前加“~”
例如:
class A
{
public:
A{}//构造函数
~A{}//析构函数
};
jieao111 2008-08-29
  • 打赏
  • 举报
回复
lz像皇帝似的
K行天下 2008-08-29
  • 打赏
  • 举报
回复
刚才看到 一贴



#include <iostream>
using namespace std;
class A
{
public:
~A(){cout <<"~A()";}
};
class B
{
public:
virtual ~B(){cout <<"~B()";}
};
class C:public A,public B
{
public:
~C(){cout <<"~C()";}
};
int main()
{
C *c = new C;
B *b1 = dynamic_cast <B*>(c);
A *a2 = dynamic_cast <A*>(c);
delete c;
a2 = NULL;
if (b1 == NULL)
{
cout <<"################" <<endl;
return 1;
}
else
{
cout <<"@@@@@@@@@@@@@@" <<endl;
return 0;

}
}


coverallwangp 2008-08-29
  • 打赏
  • 举报
回复

1. 分析一下这段程序的输出 (Autodesk)

class B

{

public:

B()

{

cout<<"default constructor"<<endl;

}



~B()

{

cout<<"destructed"<<endl;

}



B(int i) : data(i) //B(int) works as a converter ( int -> instance of B)

{

cout<<"constructed by parameter " << data <<endl;

}



private:

int data;

};



B Play( B b)

{

return b ;

}



(1) results:

int main(int argc, char* argv[]) //constructed by parameter 5

{ //destructed B(5)形参析构

B t1 = Play(5); B t2 = Play(t1);   //destructed t1形参析构

return 0;               //destructed t2 注意顺序!

} //destructed t1



(2) results:

int main(int argc, char* argv[]) //constructed by parameter 5

{ //destructed B(5)形参析构

B t1 = Play(5); B t2 = Play(10); //constructed by parameter 10

return 0;               //destructed B(10)形参析构

} //destructed t2 注意顺序!

//destructed t1

coverallwangp 2008-08-29
  • 打赏
  • 举报
回复

class A
{
public:
A(){cout<<"A construction"<<endl;}
~A(){cout<<"A destruction"<<endl;}
};
class B
{
public:
B(){cout<<"B construction"<<endl;}
~B(){cout<<"B destruction"<<endl;}
A a;
};

main()
{
B b;
}
则其结果如下:A construction
B construction
B destruction
A destruction
e_sharp 2008-08-29
  • 打赏
  • 举报
回复
class Base {
public:
~Base() {} //不明白lz什么意思
};

64,632

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧