c++中什么时候调用构造函数和析构函数

 我来答
xgjmlf
推荐于2016-11-01 · TA获得超过487个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:159万
展开全部
在对象被创建的时候就会调用构造函数,比如 声明一个类class A{...},当你在main函数中
A a ; 定义一个对象a的时候, 就调用构造函数,默认构造函数都是无参数的 ,构造函数就相当给对象a初始化而已,就相当于c语言中 int a = 3 初始化a的值而已,以为你在类中是不能直接给private中的类成员赋值的,所以就靠构造函数,不过要注意有参构造和无参构造,默认都是无参的,比如你A a(1, 3)这样的就不对了 除非你在类中写一个带参数的构造函数。
当函数调用结束的时候,会自动调用析构函数,比如你在clsaa A { public:Add().....},
当你A a; a.Add();后 就自动调用析构,你可以在类中 ~A{cout。。。},你就会发现调用
a.Add() 后就打出你在析构函数中写的东西,是自动调用的,析构的作用就是释放对象占用的资源。以为默认析构什么也不打印,所以你不会直观看出析构函数什么时候执行,自己在析构中加上打印的语言你就会看到了。希望对你能有所帮助
匿名用户
2015-06-26
展开全部
在对象被创建的时候就会调用构造函数,比如 声明一个类class A{...},当你在main函数中
A a ; 定义一个对象a的时候, 就调用构造函数,默认构造函数都是无参数的 ,构造函数就相当给对象a初始化而已,就相当于c语言中 int a = 3 初始化a的值而已,以为你在类中是不能直接给private中的类成员赋值的,所以就靠构造函数,不过要注意有参构造和无参构造,默认都是无参的,比如你A a(1, 3)这样的就不对了 除非你在类中写一个带参数的构造函数。
当函数调用结束的时候,会自动调用析构函数,比如你在clsaa A { public:Add().....},
当你A a; a.Add();后 就自动调用析构,你可以在类中 ~A{cout。。。},你就会发现调用
a.Add() 后就打出你在析构函数中写的东西,是自动调用的,析构的作用就是释放对象占用的资源。以为默认析构什么也不打印,所以你不会直观看出析构函数什么时候执行,自己在析构中加上打印的语言你就会看到了。希望对你能有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-10
展开全部
任何一本讲C++的书在面向对象的那一块都会说到这个
在Class实例化一个对象之初会调用构造函数,而当这个对象消毁时会调用析构函数
这些调用都是自动的
构造函数通常都是用来对类中的成员做初始化的,而析构则是做资源回收的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_jinqiang_
2011-07-17
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
创建对象时用构造,对象吊撤销时用析构 ,一般main 函数结束会吊析构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4a4dfac
2011-07-10 · TA获得超过740个赞
知道答主
回答量:67
采纳率:0%
帮助的人:44.8万
展开全部
创建对象时构造,对象吊销时析构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式