在 c++ 中,将派生类传递给函数/方法,代替基类,并且仍然有关于派生类的信息?例如:假设我有一个基类:“几何”和其他一些类:“形状”形式,我派生出“矩形”和“圆形”。
double area::geometry( shape& object, int i )
{
if i = 1:
rectangle thisObject = object;
double side1 = thisObject.getheight();
double side2 = thisObject.getwidth();
if i = 2:
circle thisObject = object;
double side1 = thisObject.radius * thisObject.radius;
double side2 = 3.14;
return side1 * side2;
}
问题是你必须假设“return side1 * side2”是一个非常复杂的代码,我不想重复。所以我更喜欢根据函数的输入类型来设置问题,而不是重载它。
这个想法与这个非常相似:是否可以通过引用以基类作为参数的函数来传递派生类。谢谢!
编辑:试图使代码更清晰。