Mah*_*ati 2 c++ oop inheritance multiple-inheritance
我有Circle
班级和Rectangle
班级.我现在想要创建一个类FunnyObject
,每个类由一个圆和两个矩形组成.
如果我这样做:
class FunnyObject:public Circle, public Rectangle, public Rectangle{
//How do I refer to each of the Rectangle classes?
}
Run Code Online (Sandbox Code Playgroud)
我如何引用Rectangle类中的函数和变量,因为存在歧义?
此外,通常构造函数是:
FunnyObject::FunnyObject:Circle(arguments), Rectangle(arguments){
//....
}
Run Code Online (Sandbox Code Playgroud)
构造函数如何看待我的情况?
我有一个Circle类和一个Rectangle类.我现在想制作一个类FunnyObject,每个由一个圆和两个矩形组成.
使用对象组合而不是继承.
class FunnyObject
{
Circle circle;
Rectangle rectangle1;
Rectangle rectangle2;
}
Run Code Online (Sandbox Code Playgroud)
帮助继承的一个简单技巧是考虑" 是一个 "与" 有一个 ".
如果您有" 是 "关系,则使用继承.如果您有" 有 "关系,则创建一个新的数据成员.
是 FunnyObject一个矩形和一个圆?如果是这样,继承.
FunnyObject 有两个矩形和圆形吗?如果是,请创建成员变量.
在这种情况下你不需要继承,使用组合:
class FunnyObject
{
Circle myCircle;
Rectangle myRectangle1;
Rectangle myRectangle2;
}
Run Code Online (Sandbox Code Playgroud)