<分区>
#include <iostream>
using namespace std;
struct A
{
virtual int func(void) { return 0; }
};
struct B : A
{
int func(void) { return 1; }
};
int main()
{
A b = B();
cout << b.func() << endl;
}
我原以为输出是 1
,但正如你们大多数人所知道的那样,它是 0
。
我想在我的实际代码中实现的是这些方面的东西。
struct A
{
virtual int operator() (int i);
};
struct B : A
{
int operator() (int i) { return i*2; }
};
struct C : A
{
int operator() (int i) { return i*3; }
};
struct x
{
A test;
};
所以我的容器将无法事先判断它是否将容纳 A
、B
或 C
,但应该表现良好还是不一样。
有没有办法实现我预期的功能??