如果我有一个类“Card”(基类)“CardOfType1”(派生类)和一个名为“Player”的类,其类型为“Card”的指针指向'CardOfType1'。我们有可能有一个名为'playCard(Player enemyPlayer)'的纯虚函数吗?
为了更加理解,代码如下:
class Card
{
public:
virtual void playCard(Player enemyPlayer) = 0;
};
class CardOfType1
{
public:
void playCard(Player enemyPlayer)
{
//Some Code Goes here
}
};
class Player
{
stack<Card *> deckOfCards
//.
//.
//.
};
答案 0 :(得分:1)
是的,PVF
可以有参数。
virtual void playCard(Player enemyPlayer) = 0;
这里= 0
(未分配),我们只是通知编译器函数将是pure
并且没有任何正文(在该类中声明它的位置),但是它可以有参数。
来自n4659 C++
标准
只有在使用或者调用时才需要定义纯虚函数 with(15.4),qualified-id语法(8.1)。
class shape {
point center;
public:
virtual void rotate(int) = 0; // pure virtual
virtual void draw() = 0; // pure virtual
};
但还有另一个观察
函数声明不能同时提供pure-specifier和a 定义 - 结束注释]
struct C {
virtual void f() = 0 { };
};