最佳实践虚拟
Best Practices Virtual
最佳做法
是将 virtual
关键字放在派生类的头文件中吗?
下面是一个示例:
class A
{
public:
virtual void Func();
};
你会把B类推导成这样吗:
class B : public A
{
public:
virtual void Func();
};
或者这个:
class B : public A
{
public:
void Func();
};
最佳做法
是使用 C++11 中的替代说明符:http://en.cppreference.com/w/cpp/language/override(也在早期版本的 Visual C++ 中作为Microsoft扩展)。
如果覆盖存在,则虚拟是冗余的,如上面的链接示例所示。
是的,显式通常被认为是最佳实践。该语言确实指定如果函数可以覆盖,则隐式添加virtual
说明符,但这是"偷偷摸摸的"。
C++11 还添加了 override
和 final
限定符,因此您可以确保扩展基础,而不是定义全新的函数。
这些限定符需要一个虚函数。它们并不意味着virtual
但隐含的virtual
必须存在。但同样,明确性是最好的策略。
一般来说,最好尽可能明确。 如果要重写派生类中的函数,则应指定它。 如果您不打算再次覆盖该函数,请将其设为最终函数。 声明是你与类用户的协定。 如果你把它说清楚(但仍然简洁),它就不太可能被错误地使用。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 虚拟决赛作为安全
- 实现无开销push_back的最佳方法是什么
- PowerPC ppc64le上的Gcc Woverloaded虚拟错误
- 在c代码之间共享数据的最佳方式
- 使用std::source_location报告错误的最佳实践
- 如何在C++中获得"静态纯虚拟"功能?
- 派生类销毁的最佳实践是什么
- C++无法定义虚拟函数 OUTER 类和头文件
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 在模板基类中为继承类中的可选重写生成虚拟方法
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 使用虚拟变量对 std::vector 内部循环进行切片的最佳方法
- C++-创建虚拟函数以打印调试消息的最佳方式
- 使用虚拟方法组织单例的最佳方式
- 最佳实践虚拟
- 在托管包装器中"override"本机虚拟方法的最佳方法