小编Ian*_*ray的帖子

C++继承,调用给定的类函数而不是父类?

真的很糟糕的标题,想不出怎么说出来,对不起.

所以说我有以下代码:

class A {
    virtual int getSize() {
        return 0;
    }
}

class B : public A {
    int getSize() {
        return 32;
    }
}

void doStuff(A a) {
   std::cout << a.getSize() << std::endl;
}

int main() {
   B b;
   doStuff(b);
}
Run Code Online (Sandbox Code Playgroud)

它会打印出来0,但我希望它打印出来32.换句话说,我想将它传递给类,并打印出类函数,所以我可以创建一个类C,其中大小为64,如果我将该C实例传递给doStuff函数,我希望它打印64.

有什么方法可以用C++做到这一点,我是否必须使用模板或一些我不知道的奇特的C++特性?

c++ inheritance

3
推荐指数
1
解决办法
45
查看次数

标签 统计

c++ ×1

inheritance ×1