我的代碼編譯得很好,但我遇到了不顯示正確輸出的特定部分的問題。多態構造函數
這裏是我的基類
class Item
{
protected:
//int count;
string model_name;
int item_number;
public:
Item();
Item(string name, int number);
string getName(){return model_name;}
int getNumber(){return item_number;}
,這裏是我的派生類:
class Bed : public Item
{
private:
string frame;
string frameColour;
string mattress;
public:
Bed();
Bed(int number, string name, string frm, string fclr, string mtres);
功能定義:
Bed::Bed(int number, string name, string frm, string fclr, string mtres)
{
model_name=name;
item_number=number;
frame=frm;
frameColour=fclr;
mattress=mtres;
cout<<model_name<<item_number<<frame<<frameColour<<mattress<<endl;
}
主要部分,是造成該問題:
Item* item= new Bed(number, name, material, colour, mattress);
cout<<"working, new bed"<<endl;
v.push_back(item);
cout<<"working pushback"<<endl;
cout<<" this is whats been stored:"<<endl;
cout<<v[count]->getName<<endl;
cout<<v[count]->getNumber<<endl;
count++;
當程序執行時,構造函數中的cout顯示正確的輸出,但是當我從主函數調用getname和getnumber時,無論存儲在哪裏,程序都會打印「1」。 我認爲派生類可以使用基類方法,我錯過了什麼? 任何幫助將是巨大的
感謝 HX
問題是什麼? – hmjd