これは私の問題です:
class A {
public:
int foo;
void setFoo(val) { foo = val; }
};
class B1 : public A {
public:
void foo();
}
class B2 : public A {
public:
void bar();
}
int main()
{
A obj;
switch(t) // some menu
{
case '1':
obj.setFoo(something);
case '2':
obj.foo();
case '3':
obj.bar();
}
return 0;
}
Switch は while ループにあります - これはある種のメニューです。最初のケースが最初に実行されます。
問題はケース 2 と 3 です。obj は基本クラスのインスタンスなので、これらのメソッドにアクセスできません。
どうすればこれを解決できますか?
両方の派生クラスに対して 2 つの異なるオブジェクトを作成することはできません。両方で setFoo() メソッドを使用する必要があり、同じ属性ではなくなるからです。