我喜欢这段代码的结果,但我很好奇,是否可以从main()调用B :: VFunc()?我知道在C里写B::VFunc();
会调用它但是可以从对象外部调用函数吗?
#include <cstdio>
class I { public: virtual void VFunc()=0; };
class B : public I { public: void VFunc() { printf("B\n"); } };
class C : public B { public: void VFunc() { printf("C\n"); } };
int main(){
C v;
B&i = v;
i.VFunc();
}
输出:
C
答案 0 :(得分:7)
这样做:
#include <cstdio>
class I { public: virtual void VFunc()=0; };
class B : public I { public: void VFunc() { printf("B\n"); } };
class C : public B { public: void VFunc() { printf("C\n"); } };
int main(){
C v;
B&i = v;
i.B::VFunc();
}
答案 1 :(得分:1)