我有两个相互继承的结构体,以及一个与这些结构无关的父结构,但是管理主类的std::vector
指针。这是一些代码。
父类定义:
struct Widget {
virtual void inflate();
}
子类定义:
struct Label : public Widget {
void inflate();
}
功能实现:
void Label::inflate(){
std::cout << "Child function called" << std::endl;
}
void Widget::inflate(){
std::cout << "Parent function called" << std::endl;
}
用法:
std::vector<Widget*> widgets = std::vector<Widget*>();
Label1 = Label();
Label2 = Label();
widgets.push_back(Label1);
widgets.push_back(Label2);
int i = 0;
while(i < widgets.size()){
widgets[i]->inflate();
i++;
}
输出:
Parent function called
Parent function called
谢谢
答案 0 :(得分:2)
问题在于您的使用代码,正如评论已经说过的那样。我已对其进行了修改,以便按预期编译和运行。我不能告诉你原始代码的确切问题,因为它没有编译。
以下是工作代码:
mem = malloc(val * sizeof *mem):
链接以查看是否有效:https://ideone.com/ETDClF