class base {
public:
void virtual fn(int i) {
cout << "base" << endl;
}
};
class der : public base{
public:
void fn(char i) {
cout << "der" << endl;
}
};
int main() {
base* p = new der;
char i = 5;
p->fn(i);
cout << sizeof(base);
return 0;
}
这里类中定义的函数 fn 的签名与类中定义base
的函数的签名不同,尽管函数名称相同。因此,类中定义的函数隐藏了类函数。所以类 版本的 fn 不能被调用;没事。fn()
der
der
base
fn()
der
p->fn(i)
我的观点是为什么要sizeof
上课base
,或者der
如果4
没有使用VTABLE 指针?这里对VTABLE 指针有什么要求?