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

2024-11-25 19:56:32
推荐回答(4个)
回答1:

看你的成员变量类型和继承方式了,公有成员变量和公有继承,直接赋值就行了。私有成员变量,继承之后要在初始化列表中初始化
初始化表的必要性
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;
};

回答2:

可以无参构造函数初始化,不一定要在成员列表中,这只是其中的一种方式

回答3:

不一定在有参数构造函数初始化,不一定要在列表中初始化。
希望能帮到你,哪里不清楚再问。
例如:
#include
using namespace std;
class A{
int n;
public:
A()
{n=3;}
};
int main()
{
A a;
return 0;
}

回答4:

1构造函数可以没有参数
2如果没有参数,那么在构造函数中如数据成员直接赋值
如:
class student
{
private:
int age;
string name;
public:
student(){age=0;name="0";};
}