这是我的问题:
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 是基类的实例,所以我无法访问这些方法。
我该如何解决这个问题?
为两个派生类创建两个不同的对象不起作用,因为我必须对它们都使用 setFoo() 方法,而且它不再是相同的属性。