2010-02-19 126 views
1

使用纯虚拟方法创建基类时,会导致该类无法实例化。如果我在这个基类中有常规方法和属性,那么派生类仍然继承那些正常的类?基类中的C++方法

例如,一个属性的getter和setter。

+1

你为什么不自己尝试一下? – 2010-02-19 04:02:04

回答

2

是的,所有的方法都是继承的。

+0

私有方法也被继承 - 它们是私人的,当然,但朋友仍然可以看到它们。 –

+0

即使是私有的,它们仍然被继承 - 只是它们被继承为私有方法等,所以它们不能被引用。例如,继承的专用字段在该类的实例中仍占用空间,并且仍保留一个可能影响(非专用)继承方法的结果的值。 – Steve314

+0

可以由基类调用私有继承函数。所以,他们仍然可以用来改变行为。你不能在基类之外调用它们。所有私人,受保护和公开的指示是谁可以调用这些功能。 –

0

正如莫伦所说,自己试试吧。但是,要围绕这个话题提供更多的结构...

有接口继承(我可以在对象上调用什么方法?)和实现继承(当我在这个对象上调用此方法时调用哪些代码?)。纯虚拟方法提供接口继承,但不提供实现继承。虚拟(但非纯粹)方法提供了两种选择,允许派生类提供不同的实现。一个非虚方法提供了这两种方法,但没有允许派生类提供不同实现的选项。

相关问题