gpt4 book ai didi

C++(控制台)构造函数和派生类

转载 作者:行者123 更新时间:2023-11-28 04:32:56 26 4
gpt4 key购买 nike

假设我创建了一个包含两个变量的结构。

struct mystruct{
public:
string name;
int age;};

class School :public mystruct{
private:
mystruct student;
bool status;
int major;}

在mystruct中,如果我创建了一个重载的构造函数来为我的两个变量赋值,但我只想通过类创建obj。那个构造函数怎么会发挥作用呢?我会把它放在类中以访问 mystruct 的变量吗?

注意:我知道我没有在这里放置任何构造函数,但在继续之前我想知道这个问题。

例。如果我创建一个 School 对象,我可以让构造函数自动设置 mystruct.name 和 mystruct.age 吗?我不想在 School 类之外创建 mystruct obj。

最佳答案

你有一个问题,因为 mystruct 既是基类又是 School 的成员。不是错误,而是有点奇怪。由于您的问题是关于派生类的,因此我将忽略成员变量。

您从School 的构造函数调用mystruct 的构造函数。例如

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;
}

你的类设计很奇怪。一所学校(大概)是学生的集合,但您的设计似乎只允许一个学生。在你继续之前需要解决这个问题。

我在这里回答了技术问题(如何调用基类构造函数)。但是不要让这让您认为您已经解决了类设计 问题,这实际上是一个更重要的问题。除非您拥有合理的设计,否则您的程序永远不会正确。

关于C++(控制台)构造函数和派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52401623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com