如何解决当编译器遇到虚函数时会发生什么?
当编译器遇到 virtual 关键字时会发生什么?
代码:
#include<iostream>
using namespace std;
class A{
public:
virtual void display(){
cout << "hello,in class A display()" << endl;
}
virtual void funb(){
cout << "in class A funb()";
}
};
class B : public A{
public:
void funb(){
cout << "in funb() of class B" << endl;
}
};
int main(){
A *a,c;
B b;
a = &b;
a->funb();
return 0;
}
在编译时,通过查看b的类型,它不能与funb()
的函数定义相关联吗?
究竟发生了什么?这个问题可能看起来很愚蠢,但我想澄清一下。
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。