| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1059 人关注过本帖
标题:啥叫构造函数,析构函数?
只看楼主 加入收藏
侠豪
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-8
收藏
 问题点数:0 回复次数:9 
啥叫构造函数,析构函数?
先谢谢啦,我看了很多遍也看不懂!!
搜索更多相关主题的帖子: 函数 构造 
2007-08-27 16:01
cub007
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-1
收藏
得分:0 

我也是初学 你说的应该是构造器和析构器把?

2007-08-27 16:21
鹏云翅
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-6-24
收藏
得分:0 

c++类成员的初始化,有专门的构造函数来进行自动操作而无需要手工调用
#include <iostream>
using namespace std;
class Student
{
public:
Student()//无参数构造函数
{
number = 1;
score = 100;
}
void show();

protected:
int number;
int score;

};

void Student::show()
{
cout<<number<<endl<<score<<endl;
}

void main()
{
Student a; //使用构造函数初始化a ,a已有值a.number=1,a.score=100,a一创建就有值了
a.show();
cin.get();
}
析构函数在 a每次返回值前对一些操作,清理内存等,类似你修改了word文件,关闭word时就弹出 是否保存,这个弹出的功能类似析构函数,在函数结束之前的一些操作


2007-08-27 19:45
鹏云翅
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-6-24
收藏
得分:0 
一楼和二楼都是初学的 呵呵
2007-08-27 19:46
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
析构这个"析"字写歪点就是"拆"字,C++ 有一个叫构造函数吧,所以就会有个"拆"构与之对应,构造了,用完之后就要拆构.就像展会的展室一样,用完了就要拆.为什么要拆,因为不用了所以要拆.

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-08-27 20:09
huozoo
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-6-28
收藏
得分:0 

很简单```构造函数是在实例化对象的时候调用的函数```函数名和类名一样```
析构函数是在对象释放的时候调用的函数```函数名字是类名加上~意思是构造的取反```自己漫漫理解```

[此贴子已经被作者于2007-8-27 20:29:13编辑过]

2007-08-27 20:23
xchxp321god
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-8-28
收藏
得分:0 
说一下通俗点的理解,构造函数就是你在主程序中申请一个类的对象的时候可以初始化一些数据。
例如 class A
{
private:
int b;
int c;
};
其构造函数 A::A(int y)
{
b=y;
c=0;
}
这样在你建立a类的对象的时候 A duixiang(4); 就可以初始化b c的值了
析构函数相反就是完成对象的释放清理工作了。
关于构造函数还有重载拉,复制构造函数拉那就要自己找书学习拉

2007-08-28 09:26
valentineyzq
Rank: 1
等 级:新手上路
威 望:1
帖 子:69
专家分:0
注 册:2007-8-21
收藏
得分:0 

对象是个复杂的数据集合,需要专门为其分配数据成员的空间和初始化。构造函数就是完成上面的工作的。析构函数则是把生存期结束的对象占用的空间释放掉,腾出宝贵的内存空间。在一般情况下,你不必操心这两个函数;不过如果对象中有动态分配的数据成员就要小心了。构造函数和析构函数还能容纳其他的指令,以完成在对象开始和结束时附加的功能。


我的世界曾经下过一场倾盆大雨。
2007-08-28 22:41
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
得分:0 
构造函数和析构函数都是你不能调用它,是系统自动调用的.

简单的说,构造函数就是初始化函数,是在创建对象时自动执行的,

功能是对所创建的对象的属性做些初始化工作,

析构函数是"处理后事的",人死了要处理后事,对象生命周期结束后也要处理后事.


科学是永恒之迷...... 我的博客http://blog..cn/u/1267727974 阅读我的blog,懂与不懂都是收获!
2007-09-01 15:11
qwl1982
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-9-3
收藏
得分:0 
构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。
c++创建一个对象时,会自动调用该类的构造函数。在构造函数中可以执行初始化成员变量的操作。
构造函数可以重载,默认的构造函数是无参数的,自己可以定义有参数的构造函数。
需要注意的是在自定义有参数的构造函数之后,系统就不会自动生成无参数的默认构造函数了。
如果同时还需要用到无参数构造函数,必须自己把它写出来。
析构函数的作用是释放声明对象时构造函数所分配的内存资源。
析构函数名是类名前加上“~”符号。析构函数没有参数和返回值。一个类中只能有一个析构函数,所以也不能重载。
下面是我写的例子
#include<iostream.h>
class A //定义类A
{public:
A(){cout<<"无参数构造函数为您进行现场报导!^^"<<endl;}//默认无参数的构造函数
A(int a){cout<<"有参数构造函数被执行.参数为:"<<a<<endl;}//用于重载的,有参数的构造函数
~A(){cout<<"我是可爱的析构函数 ^^"<<endl;}//类A的析构函数
};
int main()
{A a;//建立一个没有参数的对象a,调用无参数构造函数.
A b(10);//建立一个有参数的对象b,参数为10,调用有参数构造函数
return 0;}
因为声明了A类的两个对象,所以程序结束时系统自动调用两次析构函数,分别释放对象a,b占用的资源.
运行结果为:
无参数构造函数为您进行现场报导!^^
有参数构造函数被执行.参数为:10
我是可爱的析构函数 ^^
我是可爱的析构函数 ^^

2007-09-04 03:26
快速回复:啥叫构造函数,析构函数?
数据加载中...
 
   



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

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