mr.*_*poe 3 c++ inheritance coding-style class
这适用于C++.
通常我们在源文件中的头文件和定义中有我们的函数声明.假设我们有一个带有一些功能的A类:
//< A.hpp
class A
{
public:
virtual funcA();
virtual funcB();
}
Run Code Online (Sandbox Code Playgroud)
我们希望从A继承一个类并覆盖它的函数.
//< childA.hpp
class childA
{
virtual funcA();
virtual funcB();
}
Run Code Online (Sandbox Code Playgroud)
每次我们更改声明时funcA() funcB(),我们都需要将新声明复制并粘贴到子类头文件中.如果继承链很长,那就太麻烦了.
我记得Object-C没有这个问题,对吗?
除非要覆盖它,否则不需要将成员函数声明复制到子类的头文件中.在这种情况下,我认为您需要声明它的主要原因是通知读取您的头文件的任何人,该子类提供了不同的实现.原则上,编译器可以自动计算出来,但对于人类来说,手动执行相同的操作可能会非常痛苦.
请注意,在许多情况下,读取头文件的人可能无法访问正文的实际源代码(例如,如果它是作为编译对象传递给他们的专有库),那么他们不能只看看身体弄明白了.