如何获取此代码段的输出以打印“Child Class的功能”?
我无法理解为什么写作
<div layout="row" layout-wrap>
<div flex="25" ng-repeat="val in jsonArray">{{val}}</div>
</div>
导致类似的输出
BaseClass obj = DerivedClass();
输出:
#include <iostream>
using namespace std;
class BaseClass {
public:
void disp(){
cout<<"Function of Parent Class";
}
void dispOther(BaseClass& other) {
other.disp();
}
};
class DerivedClass: public BaseClass{
public:
void disp() {
cout<<"Function of Child Class";
}
};
BaseClass getInstance() {
BaseClass obj = DerivedClass();
return obj;
}
int main() {
auto obj = getInstance();
auto obj2 = DerivedClass();
obj2.dispOther(obj);
return 0;
}
答案 0 :(得分:2)
对象切片。 obj
是一个基类,即使它是从派生类对象中分配的。
要覆盖派生类中的函数,您需要创建disp()
函数virtual
,然后尝试:
DerivedClass d;
BaseClass& obj = d;
obj.disp();