假设我创建了一个包含两个变量的结构。
struct mystruct{
public:
string name;
int age;};
class School :public mystruct{
private:
mystruct student;
bool status;
int major;}
在mystruct中,如果我创建了一个重载的构造函数来赋值我的两个变量值,但我只想通过类创建obj。这个构造函数怎么可能发挥作用?我会把它放在类中以访问mystruct的变量吗?
注意:我知道我没有在这里放置任何构造函数,但在继续之前我想知道这个问题。
防爆。如果我创建一个学校obj,我可以自动设置构造函数mystruct.name和mystruct.age吗?我不想在类School之外创建mystruct obj。
你有一个问题,mystruct
既是基类,也是School
的成员。不是错误,而是有点奇怪。由于您的问题是关于派生类,我将忽略成员变量。
您可以从mystruct
的构造函数中调用School
的构造函数。例如
struct mystruct{
public:
mystruct(string n, int a) : name(n), age(a) {}
string name;
int age;
};
class School : public mystruct {
public:
School(string name, int age, bool s, int m) :
mystruct(name, age), // call to the base class constructor
status(s), major(m) {}
private:
bool status;
int major;
}
你的课堂设计很奇怪。学校(大概)是学生的集合,但你的设计似乎只允许一个学生。在你继续前进之前需要修复。
我在这里回答了技术问题(如何调用基类构造函数)。但是,不要让那个让你认为你已经解决了类设计问题,这实际上是一个更大的交易。在您拥有合理的设计之前,您的计划永远不会是正确的。