我们将开发出本课的课程。
添加新的功能
因为我们可以访问基类的源代码,可以直接添加功能基。然而,有些时候我们不想,或者不能。考虑的情况下,你已经购买了一个图书馆的代码从第三方供应商,但需要一些额外的功能。你可以添加到原代码,但这不是最好的解决方案。如果卖方发送给你一个更新?你将被覆盖,或你必须手动迁移。这也是常见的开发商发布包含类定义头文件,但释放的实现代码编译-这意味着你可以使用代码,但你不必直接修改它的能力。
在任何情况下,最好的答案是派生自己的类,并添加你想导出类的功能。
基类中的一个明显的遗漏是访问m_nvalue公众的方式。通常我们会在基类中写访问功能,举例来说,我们将它添加到派生类取代。因为m_nvalue已被声明为基类中派生的保护,直接访问它。
在派生类中添加新的功能,只是宣布在派生类的正常功能:
1
2
3
4
5
6
7
8
9
10
class Derived: public Base
{
public:
Derived(int nValue)
:Base(nValue)
{
}
int GetValue() { return m_nValue; }
};
现在, 公众将能够 调用 getvalue() 来访问 m_nvalue 价值 。
1
2
3
4
5
6
7
int main()
{
Derived cDerived(5);
cout << "cDerived has value " << cDerived.GetValue() << endl;
return 0;
}