私はこれらのクラスを持っています:
class Base
{
private:
string name;
public:
void setName(string n);
string getName();
void toString();
}
そして、これから派生する 2 つのクラス:
class DerivedA : public Base
{
private:
int width;
public:
void setWidth(int w);
int getWidth();
}
と
class DerivedB : public Base
{
private:
int height;
public:
void setHeight(int h);
int getHeight();
}
今私の質問に。私のメインは次のようになります。
int main()
{
Base* b;
string line;
... file loading ...
while(...)
{
s = cin.getline(file,10);
if(s == "w")
{
b = new DerivedA();
}
else if(s == "h")
{
b = new DerivedB();
}
while(...)
{
b->toString();
}
}
return 0;
}
これにより、常にアプリが終了します。b->toString();
スコープが異なるため、パーツが問題の原因である可能性があることがわかりました。とにかく、どうすればこれを行うことができますか?(コードの退屈で無関係な部分は省きました。)