在c++中为何需要构造函数,要具体点的答案,最好有程序说明,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:20:30

一般用构造函数是为了能够在定义类的对象时能对其赋初值,就像定义个函数一样,能给其形参赋初值
楼主可以看看这个列子
#include <iostream>
using namespace std;
class box
{ public:
box(int x,int y):chang(x),width(y){}
int swap();
private:
int chang;
int width;
};
int box::swap()
{ return chang*width;
}
int main()
{ box box1(10,20),box2(0,0);
cout<<box1.swap()<<endl;
box2=box1;
cout<<box2.swap()<<endl;
return(0);
}

一种语言机制而已~
比起普通变量,类的对象比较复杂,而且由于类的封装性,它不允许类的非成员函数访问类对象的私有和保护数据成员,对类对象的初始化自然落到了类对象的成员函数身上,所以C++提供了对于对象初始化的函数--构造函数。
当然你也可以不使用构造函数,可以自己另外写一个初始化数据成员的函数供生成对象的时候调用。但编译器还是会生成一个默认的构造函数,不过它什么也不做。

构造函数是为了能够在定义类的对象时能对其赋初值
2楼的理解有点偏差,当定义一个类的时候,如果没有构造函数,系统大多数情况会提供默认的不带参数的构造函数,但是不是所有时候。