gpt4 book ai didi

c++ - 如何使用构造函数初始化另一个类中的对象?

转载 作者:行者123 更新时间:2023-11-28 01:54:46 26 4
gpt4 key购买 nike

我是学习 C++ 的新手,一直在学习构造函数。我有一个类 Teacher 和一个类 Subject。在类 Teacher 中有一个对象 Subject S[]。如何使用 TeacherS[] 中的构造函数进行初始化?我试过这个:在Teacher.h文件中

class Teacher 
{
private:
string name;
Subject *S[20];
public:
Teacher();
}

在Teacher.cpp文件中

Teacher::Teacher()
{
name=" ";
for(int i=0; i<20; i++)
{
S[i].Subject();
}
}

在 Subject.cpp 文件中,构造函数是:

Subject::Subject()
{
day=0;
hour=0;
for(int i=0; i<10; i++)
{
classroom[i]=" ";
}
}

最佳答案

按照您目前的方式,您必须编写

S[i] = new Subject();

而不是

S[i].Subject();

但这会给您带来负担,因为您必须记得调用 delete在某一点。使用

更好

std::list<Subject> S;

代替

Subject *S[20];

然后 push_back甚至更华丽的emplace_back代替 S[i].Subject();

参见 http://en.cppreference.com/w/cpp/container/list

关于c++ - 如何使用构造函数初始化另一个类中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41594044/

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