私はクラスプロジェクトを持っており、各プロジェクトは異なるタスクを持つことができます。セッターとゲッター/クラス
Project.h:
#pragma once
#include "Task.h"
#include <vector>
using namespace std;
class Project
{
private:
vector<Task> Tasks;
public:
Project::Project(int inleesgetal);//constructor
vector<Task> GetTasks();
};
Project.cpp:
#include "Project.h"
#include <string>
#include <vector>
Project::Project(int inleesgetal)
{
//constructor
Tasks.resize(Numbertasks);
}
vector<Task> Project::GetTasks()
{
return Tasks;
}
Task.h:
#pragma once
#include <vector>
using namespace std;
class Task
{
private:
//Info:
int StartTime_Solo;
public:
Task(); //constructor
void SetStartTime_Solo(int st_s);
int GetStartTime_Solo();
};
Task.cpp:
#include "Task.h"
#include <string>
#include <vector>
#include <iostream>
using namespace std;
Task::Task()
{
//constructor
StartTime_Solo = 0;
}
int Task::GetStartTime_Solo()
{
return StartTime_Solo;
}
void Task::SetStartTime_Solo(int st_s)
{
StartTime_Solo = st_s;
}
メイン:今
#include <iostream>
#include <vector>
#include "Task.h"
#include "Project.h"
using namespace std;
int main()
{
Project Project1(6);
Project1.GetTasks()[2].SetStartTime_Solo(55);
cout << "test:" << Project1.GetTasks()[2].GetStartTime_Solo();
return 0;
}
私は55のSTARTTIMEにProject1の第三の課題を設定し、それはまだ、結果として私に0を与える開始時刻をプリントアウトしてみてください。 これはなぜですか?そして、実際に開始時間を55に設定するように、コードをどのように変更できますか?
'setX'と' getX'の形式のセッターとゲッターは、実際に_Java-ish_です。 – skypjack
'Vector GetTasks();'メンバーのコピーを返します。ベクタータスク; 'Project1.GetTasks(2).SetStartTime_Solo(55);'はコピーのみを更新します。 BTW:小文字で変数とメンバを記述する必要があります。変数/メンバとクラスを区別する方がずっと簡単です。 –
['名前空間std;'を避けてください](http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice) - 特にヘッダーで。 –