Ben "Görev" adlı bir sınıf olarak aşağıdaki veri yapısı vardır:C vektörü meraklı davranışı ++ :: push_back()
A 3 10
B 2 12
C 1 11
:
private:
string name;
int computation_time;
int period;
Ayrıca ben bu içeriğe sahip bir ASCII dosyası var
name = A, computation_time = 3 dönem = 10 ve benzeri ....
Şimdi ben dosyasında okumak istiyorum, Görev-nesne oluşturmak ve bir vektör geri itin:void read_in_task_list_and_create_tasks(const string &filename, vector<Task> ¤t_tasks)
{
ifstream in_file;
in_file.open(filename.c_str());
string tmp_name;
int tmp_computation_time;
int tmp_period;
while(!in_file.eof())
{
in_file >> tmp_name;
in_file >> tmp_computation_time;
in_file >> tmp_period;
// Task tmp_task(tmp_name, tmp_computation_time, tmp_period);
// current_tasks.push_back(tmp_task);
current_tasks.push_back(Task(tmp_name, tmp_computation_time, tmp_period));
}
}
Şimdi, current_tasks vektörüne baktığımda, öğelere sahip, ancak değerleri benim in_file değerlerimle uyuşmuyor. Çıkan satırları izleyin. tmp_task nesnesi tam olarak doğrudur, ancak geri itilirse, yukarıda açıklandığı gibi değerlerini kaybeder. std :: vector bellek tahsisi yönetmektedir çünkü
bu, Görev-sınıfında Kopya Yapıcı Sayı olabilir mi?Ben Linux x86 üzerinde gr ++ derleyici ile netbeans kullanıyorum.
THX
'Task' sınıfı için tam tanımını gönderir misiniz? – SingleNegationElimination