在C++中构造函数的有参和无参的区别 5

 我来答
匿名用户
2011-03-19
展开全部
也没多大区别,有参的可以定义的时候传递参数,无参的可以定义变量为默认值,或者输入参数。两者都可以实现相同的功能,一般有参的方便一点,定义的时候就可以赋初值。也可以两个同时用,实现多态性。
tattackor
推荐于2016-06-20 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:878万
展开全部
都在对象被构造的时候被调用,只是在构造对象时根据new对象的参数类型和个数进行选择对应的构造方法进行调用,当没有参数时调用无参构造方法,有参数时调用对应的有参构造方法。构造函数的参数一般用来初始化类的数据成员。
构造函数的特点及作用:
1、构造函数的命名必须和类名完全相同。
2、构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。
3、构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用。
4、当定义一个类定义的时候,通常情况下都会默认一个构造函数,此默认构造函数是不带参数的。当自定义了含参构造函数时,默认构造函数将需要手动书写出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bnuzhanyu
2011-03-20 · 超过17用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:49.7万
展开全部
比如
class A
{
public:
int attrib;
A() {attrib = 0; cout<<"无参"<<endl; } //无参构造函数
A(int a) {attrib = a; cout<<"含参"<<endl;} //有参构造函数
};

int main()
{
A aa(3);//这样申明一个A类变量aa,调用带参数的构造函数,得到 aa.attrib = 3;
cout << aa.attrib<<endl;
A bb;//这样申明一个A类变量bb,调用不带参数的构造函数,得到bb.attrib = 0;
cout<< bb.attrib << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
测绘地理信息
2011-03-19 · TA获得超过2204个赞
知道小有建树答主
回答量:516
采纳率:100%
帮助的人:470万
展开全部
这可是一个字一个敲的啊……
在定义类时不能对成员变量进行初始化,因为此时无法确定成员变量属于哪一个对象,成员变量一般都定义为私有属性,也不能在声明对象后利用赋值运算对成员变量进行初始化。成员变量的初始化一般是利用一个名为构造函数的成员函数来完成。
构造函数是一种特殊的成员函数,它提供了对成员变量进行初始化的方法,使得在声明对象时能自动地初始化对象。因为当程序创建一个对象时,系统会自动调用该对象所属类的构造函数。
像一般函数一样,构造函数也可以重载,即可以为一个类定义多个不同的构造函数,通过函数参数不同来区别不同的构造函数,在声明对象时其后括号中的参数形式决定了调用类的哪一个构造函数。

参考资料: 《Visual C++ 面向对象编程教程》

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式