构造函数中另一个类的对象

时间:2016-10-05 07:48:11

标签: c++ object

我有一个班级项目。项目本身有不同的任务。所以我在Project的构造函数中创建了一个for循环来添加' Task'的不同对象。

我的代码如下:

Project.cpp中的

Project::Project(int readnumber)
{
//constructor
int Projectnumber= 1; // ????
int Projectduration = 0;
int Numbertasks = 0;

ReadRanGenData(readnumber);
Numbertasks = numberAct;
vector<Task> Tasks(Numbertasks);
for (int i = 0; i < numberAct; i++)
{
    Tasks[i].SetTaskNumber(i + 1);
    cout << "in sub: " << Tasks[i].GetTaskNumber();

}

}

在这个构造函数中,我创建了一个任务向量。这些任务有自己的属性(例如任务号等)。 在task.cpp中,我有设置变量的方法(SetTaskNumber)。

我也有调用项目数据的方法:

vector<Task> Project::GetTasks()
{

cout << "test" <<  Tasks[0].GetTaskNumber();
return Tasks;
}

但是当我试图测试我是否可以访问任务编号时,我得到了错误:向量下标超出范围。 然后我尝试直接在构造函数中访问tasknumber(cout&lt;&lt;&#34;在sub:&#34;&lt;&lt; Tasks [i] .GetTaskNumber();)并且没有出现错误,我得到了正确的结果。 我该如何解决这个问题?

还有第二个问题:在构造函数中我写了int projectnumber = 1;但理想情况下,当我创建一个新对象时,项目编号总是会增加1。我想用int Projectnumber = ++ 1做到这一点;但是当我尝试时,我收到了一个错误。

0 个答案:

没有答案