【发布时间】:2021-12-03 15:42:39
【问题描述】:
所以我有一个 ParentClass 和一个 ChildClass。我有一个矢量对象。我推回了其中的两个项目,一个 ParentClass newparent 对象和一个 ChildClass newchild 对象。我有一个 for-each 循环,我想从这个 for-each 循环中访问父函数的子版本函数,但我不能。请帮忙。
代码如下:
#include <iostream>
#include <vector>
using namespace std;
class ParentClass {
public:
int _a;
ParentClass(int a) {
this->_a = a;
}
void print_a() {
cout << "parent a: " << this->_a << endl;
}
};
class ChildClass: public ParentClass {
public:
ChildClass(int a) : ParentClass(a) {}
void print_a(){
cout << "child a: " << this->_a << endl;
}
};
int main(int argc, char const *argv[]) {
int x = 5, y = 6;
vector<ParentClass> objects;
ParentClass newparent(x); objects.push_back(newparent);
ChildClass newchild(y); objects.push_back(newchild);
for (auto obj : objects){
obj.print_a();
}
return 0;
}
我希望它打印出“child a: 6”,但它会打印出“parent a: 5”和“parent a: 6”
【问题讨论】:
标签: c++