我是新來的cpp,想了解列表。 當我運行我的程序它編譯好,但我沒有得到結果 我期待。std :: list,無法訪問對象
這給了我輸出
Legs: 0 Name:
應該
Legs 4 Name: dog
任何一個可以看這個問題?
正如在註釋部分,我已經試過了一個多小時,並得到得到這個工作,不能看到這個問題。
頭文件
using namespace std;
#ifndef ANIMAL_H
#define ANIMAL_H
class Animal {
public:
Animal();
Animal(const Animal& orig);
virtual ~Animal();
int _Legs;
void SetName(string name);
string GetName();
private:
string _Name;
};
#endif /* ANIMAL_H */
Animal.cpp
Animal::Animal() {
}
Animal::Animal(const Animal& orig) {
}
Animal::~Animal() {
}
string Animal::GetName(){return _Name;}
void Animal::SetName(string name){_Name = name;};
主文件
void List()
{
std::list<Animal> animal_list;
Animal temp;
temp = Animal();
temp._Legs = 4;
temp.SetName("Dog");
animal_list.push_back(temp);
for(std::list<Animal>::iterator list_iter = animal_list.begin();
list_iter != animal_list.end(); list_iter++)
{
std::cout<< "Legs:" << list_iter->_Legs << " Name: " << list_iter->GetName() << endl;
}
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
List();
return 0;
}
也許你應該實現該複製構造函數?我的意思是,實際上讓它做一些事情,或者完全刪除它。 –
你有'Animal'的空副本構造函數?那麼你期望的是什麼?要麼根本不定義一個,並使用編譯器生成一個,或者在定義中複製類成員變量。 –
另外(但與您的問題無關),您不應該有帶大寫字母后跟大寫字母的名稱。 [這些保留在所有範圍](http://stackoverflow.com/a/228797/440558)。 –