避免在每个派生类中重新实现方法调用
Avoid re-implementation of a method call in each derived class
我有一个抽象类及其派生类。
我想在抽象类中有一个成员(即fderivedName),带有派生类的名称。
在每个派生类的构造函数中:
fDerivedName = this->ClassName();
有一种方法可以避免在每个派生类中重新实现此功能吗?
谢谢
您可以在基类中实现构造函数(然后不再是纯抽象),将派生类的名称作为参数传递,然后在构造函数的初始化程序列表中进行分配:
class Base
{
public:
Base( const std::string& derived_class_name):
fDerivedName( derived_class_name)
{
}
...
};
但是,当然,您仍然必须从派生类的每个构造函数中调用此基类构造函数。您将不得不将类名称作为参数传递,您不能例如调用由派生类负载的虚拟函数ClassName()
。
相关文章:
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- C++ 如何使用动态计算的新节点实现 A*?
- 实现一个函数,该函数将字符串作为输入并返回一个新字符串,辅音字母不替换为 "!"
- C++ 多重继承:使用基类 A 的实现实现基类 B 的抽象方法
- 为什么这个新的 [ ] 和删除 [ ] 实现会分解为 12 >整数?
- 在不创建新节点的情况下实现带有映射的trie
- 使用 Qt5 的新信号/插槽实现向滑块发出信号
- 如何实现由TPAINTBOX创建的新组件的OnMousedown,OnMouseUp事件
- 如何自己为我自己的shared_ptr实现实现别名构造函数
- 为什么我不能使私人运营商成为新的并使用默认实现?
- 如何向 C++ 中无法访问其实现的类添加新函数
- 在哪里可以找到C 中新运营商的确切实现
- C++新的不同实现
- 如何实现一个创建新对象并返回对它的引用的C++方法
- 如何实现消费者生产者,消费者可以请求新的数据
- 这个UTF-8实现实现是定义的还是定义良好的
- 如何实现C++"新"运算符
- 我可以在不使用新关键字的情况下以某种方式实现这一点吗?C++
- 如何实现一个简单的容器放置新和放置功能
- 您将如何重构这种多态设计,以便在添加新实现时使其更加灵活?