Ric*_*ard 1 c++ polymorphism virtual inheritance friend
所以我现在正在学习c ++类中的继承,并试图将所有术语都放在一边.我理解受保护和私有之间的区别.但是当你创造一个功能时,朋友与公开它不是一回事吗?
他们用来教导继承的例子是形状,所以:
class shape{
struct circle
struct rectangle
struct line
}
Run Code Online (Sandbox Code Playgroud)
这样的事情,说法之间有什么区别
class circle: shape
class circle: public shape
class circle: private shape (don't actually know if this one is possible)
Run Code Online (Sandbox Code Playgroud)
最后,关键字虚拟意味着/做/用于什么?谢谢
首先,您应该选择一本好的C++书籍并阅读以下概念:
为了让您开始简要介绍您的问题:
您的第一个示例是Composition not Inheritance的示例.
继承是一种关系.
组成是一种关系.
在示例中,Circle IS A类型Shape.
class circle: shape
Run Code Online (Sandbox Code Playgroud)
与:
class circle: private shape
Run Code Online (Sandbox Code Playgroud)
对于类,默认Private情况下为Default Access说明符.这是私人继承.类circle私有地派生自类shape.
在Private Inheritance中,Base类的所有公共成员和受保护成员都成为Derived类的Private成员.
class circle: public shape
Run Code Online (Sandbox Code Playgroud)
是公共继承,类circle公共派生自类shape.
在公共继承中,Base类的公共成员成为Derived类的Public成员,Base类的受保护成员成为Derived类的受保护成员.
这个C++ - Faq应该是理解基础知识的好读物:
什么是访问说明符?我应该继承私人,受保护还是公共?
但是当你创造一个功能时,朋友与公开它不是一回事吗?
当您从类中创建函数时friend,Access说明符不再适用于该函数.该函数可以访问,protected以及private该类的成员.但这仅限于该函数.
关键字的virtual意思/做/用于什么?
该关键字virtual用于实现动态/运行时多态性.
这是一个广泛的术语,因此,从书中阅读和理解这一概念至关重要.如果您在理解任何具体问题时仍然遇到问题,请回到此处,随时在此处提出具体问题.