| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1238 人关注过本帖
标题:构造函数和析构函数怎么用
只看楼主 加入收藏
guowei3758
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:58
专家分:72
注 册:2010-4-9
结帖率:55.56%
收藏
已结贴  问题点数:20 回复次数:9 
构造函数和析构函数怎么用
新手求助,构造函数和析构函数怎么用?不太清楚啊。。。。。。。都是做什么的??
搜索更多相关主题的帖子: 函数 构造 
2010-04-29 20:34
rxyknight
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-04-29 23:12
wow51
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-4-6
收藏
得分:0 
构造函数可以认为是特殊的成员函数,不能为其指定返回值类型,可以利用它对数据成员进行初始化!这个析构函数一个类只能有一个析构函数,也必定有一个析构函数用来释放构造函数(使用完以后)所占用的内存空间。
2010-04-29 23:27
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:5 
楼主要认真的看书了,一本c++基础其实前半本是重复c语言的知识,真正的只有类和对象是重点。
1构造函数:a.他和你所定义的类的类名一样,没有函数的类型;
           b.他也是一个成员函数;
           c.他的参数可以有多个可,也可以没有。
作用:是在创建一个对象时系统会自动调用的;一般是两种情况:1.初始化一个对象,2.给一个对象赋植(此时创建的一个无名对象)。
2.析构函数:a.他和你所定义的类的类名一样,没有函数的类型;
            b.他也是一个成员函数;
            c.他没有参数;
            d.他的函数名前加上一个~;
作用:是对所创建的对象进行释放。
         
2010-04-30 18:30
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
构造函数
就是c语言中的 经常看到的初始化函数,init();

只不过你在new 一个对象的时候 自动调用他, 省了那么一点点打字的力气

我就是真命天子,顺我者生,逆我者死!
2010-04-30 18:34
guowei3758
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:58
专家分:72
注 册:2010-4-9
收藏
得分:0 
要初始化的是不是在类中定义的东西????比如:
在public中定义了两个成员函数void aa(int a,double b);void bb(int c,double d);
类名为asd
那么构造函数就应该是asd(int a,int c,double b,double d);
析构函数~asd();  括号中啥都不写,对吗?


[ 本帖最后由 guowei3758 于 2010-4-30 19:24 编辑 ]
2010-04-30 19:16
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:5 
在main中使用时
student obj; 这种通过不带参数的构造函数初始化(默认值)。
student obj1(10);这种通过带参数的构造函数初始化。
那么就需要在类型写上构造函数:
class Age:
{
    public:
            student();  //给m赋默认值
            student(int n);  //将对象所带参数n传递(赋值)给私有成员m,也就是初始化
            ~student();  //程序结束时,开始释放对象,一般是成员函数动态内存分配了,用析构函数进行扫尾工作,释放分配的东西,跟new,delete,很像,有创建就有释放。
    private:
            int m;
}
2010-04-30 23:12
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
构造函数和析构函数都是系统自动调用的。
构造函数是在定义类的对象的时候,对对象进行初始化工作的。
而析构函数是在程序运行结束之前,对对象进行消亡处理,释放内存空间。

南国利剑
2010-05-01 08:38
guowei3758
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:58
专家分:72
注 册:2010-4-9
收藏
得分:0 
就是说只要在main函数中出现asd dsa()
括号中有东西时就要用构造和析构???
如果括号中为空就不用写构造和析构???
2010-05-01 18:32
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1487
专家分:9082
注 册:2010-3-16
收藏
得分:10 
回复 9楼 guowei3758
所有的对象都有构造函数和析构函数,如果你没有定义这些函数,那么编译器会自动添加的。
括号中不带参数的称为默认构造函数。
构造函数没有返回类型,函数名跟类名相同,可以没有或有数个参数。
构造函数的主要作用是初始化类的状态。

析构函数的作用是清理对象。
2010-05-01 19:34
快速回复:构造函数和析构函数怎么用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023688 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved