纯虚拟函数可以具有参数吗?
can a pure virtual function has parameters?
如果我有一个类" card"(base类(" cardoftype1"(派生类(和一个名为" player"的类,上面有'cardofType1'的类型'卡的指针'。我们是否有可能具有名为" PlayCard(Player YounePlayer("的纯虚拟函数?
为了获得更多理解,该代码在下面给出
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
//.
//.
//.
};
是的, PVF
可以具有参数。
virtual void playCard(Player enemyPlayer) = 0;
在这里 = 0
(没有分配(,简单地告知编译器,函数将为 pure
,并且没有任何正体(在该类别中声明其声明(,但是它可以具有参数。
来自N4659 C++
标准
仅在调用时才需要定义纯虚拟函数,或者 与(15.4(,合格的ID语法(8.1(。
class shape {
point center;
public:
virtual void rotate(int) = 0; // pure virtual
virtual void draw() = 0; // pure virtual
};
但是还有另一个观察结果
函数声明不能同时提供纯指标和 定义 - 结束注]
struct C {
virtual void f() = 0 { };
};
相关文章:
- 如何在C++中伪造虚拟可变参数函数模板?
- 类中的虚拟布尔函数参数不起作用
- 虚拟模板函数:使用参数实现访客模式
- 非虚拟成员函数是否可以使用模板参数?
- 如何将已实现的虚拟成员函数作为参数传递
- C :在f的派生类实现中,可以用x的子类型代替纯虚拟函数f的参数x
- 派生类中函数参数变化的虚函数按常量类型在"function parameter"会破坏虚拟机制吗?
- 评估虚拟堆栈中的可变参数
- 纯虚拟函数可以具有参数吗?
- 在多态性中重新定义功能(虚拟),具有不同数量的参数
- 覆盖虚拟函数 - 派生类具有不同的参数
- 模板层次结构中的可选虚拟函数,具体取决于参数
- C 继承 - 将指针作为参数指向的虚拟函数
- 如何使用派生类中的虚拟函数,该函数在另一个具有基类参数的类中声明
- 基于继承的类型参数改变父虚拟函数的行为
- 如何使继承相同基类的类的虚拟方法弄清楚如何处理它们的参数?
- 其中,在只有参数化构造函数的类中初始化的 VPTR(虚拟指针)
- C++ 虚拟函数,参数在未使用时收到警告
- 虚拟方法和参数查找
- 如何实现具有不同参数结构的纯虚拟函数