在c ++

时间:2017-10-30 21:57:09

标签: c++ c++11 inheritance pure-virtual

派生类是否有办法选择实现两个纯虚函数之一?

在我的例子中,这些纯虚函数具有相同的通用性,但在类的某些设置中,需要具有附加参数的函数。当然,总是可以选择使用完整的参数集制作一个纯虚函数。然而,在这种情况下,最终用户总是会想到他没有使用的这个额外参数。

1 个答案:

答案 0 :(得分:2)

必须在每个子类中实现所有纯虚函数。

但是,您可以通过使用一组完整的参数定义单个纯虚函数,并为您认为可选的最后一个参数添加默认值来解决您的特定问题:

virtual void foo(int p1, std::string p2, double p3 = 0.0) = 0;

现在调用者可以选择传递两个或三个参数,而实现不需要p3的类则可以忽略它。