派生函数中的NULL实现
NULL implementation in derived function
在我的设计中,我从一个公共类(Base1
)派生了三个类(Der1
, Der2
, Der3
)其中2/3的类对虚函数f1()
有相同的实现。即f1()
与Der1
和Der2
共享相同的实现,而Der3
没有实现。
所以我在Base1
和Der3
中保持f1()
实现,我用null实现({}
)覆盖此实现
这样可以吗?
如果Der3
自然没有f1()
,那么它就不能与Der1
和Der2
相同。您最好有没有f1()
的Base1
,并直接从中派生Der3
,然后有一个实现从Base1
派生的f1()
的Base2
,并从中派生Der1
和Der2
。因此:
class Base1
{
};
class Der3 : public Base1
{
};
class Base2 : public Base1
{
public:
f1();
};
class Der1 : Base2
{
};
class Der2 : Base2
{
};
如果你想让你的函数什么都不做,如果它在语义上有意义,Der3
覆盖了普通的实现,而不是什么都不做,是的,你可以让你的函数什么都不做。
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 如果我std::dynamic_pointer_cast并且底层dynamic_cast的结果为null,那么返回的sh
- 如何在 c++ 中'NULL'字符串
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- c++使用foreach使数组为null
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 当使用通配符和null指针调用函数时,对输出的说明
- 为什么在排序链表上的这种合并实现总是将两个列表都设置为 NULL,而只有一个应该设置一个列表?
- WString 实现 - 返回以 null 结尾,我走的路是否正确
- C++:为链表实现插入函数,prev_ptr最终为NULL
- 派生函数中的NULL实现
- c++或库中是否存在null std::ostream实现?
- 如何在头文件中实现的构造函数中将指向模板类的链表指针初始化为NULL