在c++中对象成员必须在含有参数的构造函数中初始化,并且在初始化成员列表中?这句话有问题吧?

 我来答
周生008
推荐于2017-12-16 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:647万
展开全部
看你的成员变量类型和继承方式了,公有成员变量和公有继承,直接赋值就行了。私有成员变量,继承之后要在初始化列表中初始化
初始化表的必要性
1) 类中包含常量和引用型的成员变量。必须通过构造函数和初始化表显式地对其进行初始化。
2) 在子类中显式地构造其基类部分。
class A {
public:
A (void) {}
A (int n) : m_n (n) {}
private:
int m_n;
};
class B {
pulbic:
B (void){}
B (int n) : m_a (n) {}
private:
A m_a;
};
liuqianggege0
2013-06-05
知道答主
回答量:18
采纳率:0%
帮助的人:15.3万
展开全部
可以无参构造函数初始化,不一定要在成员列表中,这只是其中的一种方式
更多追问追答
追问
对象成员的初始化还有其他的方式啊?请教
追答
昏,马上要答辩了,在这里帮你回答问题
class CExample {
public:
int a;
float b;
//构造函数初始化列表
CExample(): a(0),b(8.8)
{}
//构造函数内部赋值
CExample()
{
a=0;
b=8.8;
}
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cd3d6c4
2013-06-05 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:280万
展开全部
不一定在有参数构造函数初始化,不一定要在列表中初始化。
希望能帮到你,哪里不清楚再问。
例如:
#include<iostream>
using namespace std;
class A{
int n;
public:
A()
{n=3;}
};
int main()
{
A a;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨星光05
2013-06-05 · 超过11用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:31万
展开全部
1构造函数可以没有参数
2如果没有参数,那么在构造函数中如数据成员直接赋值
如:
class student
{
private:
int age;
string name;
public:
student(){age=0;name="0";};
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式