コードは正常にコンパイルされますが、特定のセクションで正しい出力が表示されないという問題があります。
これが私の基本クラスです
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