在c++中对象成员必须在含有参数的构造函数中初始化,并且在初始化成员列表中?这句话有问题吧?
4个回答
展开全部
看你的成员变量类型和继承方式了,公有成员变量和公有继承,直接赋值就行了。私有成员变量,继承之后要在初始化列表中初始化
初始化表的必要性
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;
};
初始化表的必要性
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;
};
展开全部
可以无参构造函数初始化,不一定要在成员列表中,这只是其中的一种方式
更多追问追答
追问
对象成员的初始化还有其他的方式啊?请教
追答
昏,马上要答辩了,在这里帮你回答问题
class CExample {
public:
int a;
float b;
//构造函数初始化列表
CExample(): a(0),b(8.8)
{}
//构造函数内部赋值
CExample()
{
a=0;
b=8.8;
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不一定在有参数构造函数初始化,不一定要在列表中初始化。
希望能帮到你,哪里不清楚再问。
例如:
#include<iostream>
using namespace std;
class A{
int n;
public:
A()
{n=3;}
};
int main()
{
A a;
return 0;
}
希望能帮到你,哪里不清楚再问。
例如:
#include<iostream>
using namespace std;
class A{
int n;
public:
A()
{n=3;}
};
int main()
{
A a;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1构造函数可以没有参数
2如果没有参数,那么在构造函数中如数据成员直接赋值
如:
class student
{
private:
int age;
string name;
public:
student(){age=0;name="0";};
}
2如果没有参数,那么在构造函数中如数据成员直接赋值
如:
class student
{
private:
int age;
string name;
public:
student(){age=0;name="0";};
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询