gpt4 book ai didi

c++ - 抽象类,如何调用函数print

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:47 25 4
gpt4 key购买 nike

我有一个问题,我有这个基类:

class A{
public:
/*...*/
virtual void print() = 0;
};

在这里我创建了一个继承自“A”类的类

class B : public A{
private:
double a;
public:
/*...*/
B(double _a) : a(_a){ }
void print() override{
cout << a<<'\n';
}
};

我使用:

int main(){
/*...*/
std::vector<A*> vec;
/* ... Here I added new object */
vec.push_back(new B(2));

for(__typeof(vec.begin()) it = (vec.begin()); it!= vec.end(); it++){
}
//How to using and display function print which is declared inside class B
}

问题:如何调用B类中声明的print函数?

我试过使用以下方法,但这种表示法并没有给我一个好的结果:

vec.front()->print(); 

最佳答案

您的 main 只需像这样:

int main(){

std::vector<A*> vec;
/* ... Here I added new object */
vec.push_back(new B(2));

for(std::vector<A*>::iterator it = vec.begin(), end = vec.end(); it != end; ++it){
(*it)->print();
}

return 0;
}

注意迭代器是如何在循环内取消引用的。

关于c++ - 抽象类,如何调用函数print,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27944935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com