class Book {
public:
string title;
int ID;
virtual void S () = 0;
};
class Narnia : public Book {
public:
int NarniaParts;
virtual void S () {}
};
class HP : public Book {
public:
int HPparts;
virtual void S () {}
};
int main ()
{
Book * s = new Narnia;
s-> //THIS IS WHERE THE PROBLEM IS
return 0;
}
所以我用一个超类 Book 和两个子类 Narnia 和 HP 编写了这段小代码。当我做
Book * s = new Narnia;
我的“s->”无法访问纳尼亚“NarniaParts”类的成员函数。它可以访问超类 Book 的所有成员(标题、ID 和 S),但不能访问类 Narnia 对象的成员 NarniaParts。有人可以解释为什么我 s-> 无法访问 NarniaParts 吗?谢谢!