对象成员变量还是继承
Object member variable or inheritence?
我一直在练习继承,我发现自己在问"has-a"关系到底是关于什么的。
如果我有一个类circleType
,并且我想创建一个类别cylinderType
,那么从circleType
派生cylinderType
和在cylinderType
的定义中只包含一个circleType
对象成员之间有什么区别
class cylinderType :
public circleType
{
public:
cylinderType();
~cylinderType();
private:
double * height;
};
或:
class cylinderType
{
public:
cylinderType();
~cylinderType();
private:
circleType baseOfCylinder;
};
记住,从另一个类公开继承的类可以在任何可以使用父类的地方使用。例如,给定OP中的定义,以下内容是完全有效的,即使计算圆柱体的面积没有多大意义:
double area(const circleType& circle)
{
return PI * circle.radius() * circle.radius();
}
int main()
{
cylinderType cylinder;
std::cout << area(cylinder);
}
相关文章:
- 从类继承时,继承的类是否会通过父类重新定义继承的变量
- 如何从另一个文件继承私有成员变量和公共函数
- 继承时如何构建派生类的变量?
- 在类中继承静态变量?
- 打印所有继承的类成员变量和方法
- 如何在复杂继承中访问静态成员变量
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 继承/多态性 - 我是否被迫使用"protected"变量?
- 继承类中的 C++ 成员变量类型重写
- 对象成员变量还是继承
- 继承构造函数和其他变量的解决方法
- std::exception :使用虚函数和继承与变量
- 如何解决多次继承的不明确变量名称?
- 是否可以在不修改父类的情况下将成员变量初始化推迟到继承的类?
- 为什么继承的函数会更改基类中的成员变量,而不是与名为它的对象同名的对象
- 继承变量不可访问
- C++:使用父类运算符函数更新子类对象的继承变量
- 如何在 Visual Studio 中的窗体之间继承变量,C++
- 类的继承变量和自己的变量之间的差异
- c++类继承变量