大家好,欢迎来到IT知识分享网。
class Base {
public: virtual void func1() {
// 实现 func1 } virtual void func2() {
// 实现 func2 } }; int main() {
Base obj; obj.func1(); obj.func2(); return 0; }
class Base {
public: virtual void func1() {
// 实现 func1 } virtual void func2() {
// 实现 func2 } }; int main() {
Base obj; obj.func1(); obj.func2(); return 0; }
在这个示例中,Base 类包含两个虚函数 func1() 和 func2()。编译器会为 Base 类生成一个虚函数表,并将 func1() 和 func2() 的地址填充到表中。在 main() 函数中,创建了一个 Base 类对象 obj,编译器会在 obj 的内存布局中插入一个指向 Base 类虚函数表的虚函数指针。当调用 obj.func1() 和 obj.func2() 时,编译器通过 obj 的虚函数指针找到对应的虚函数表,然后根据虚函数的索引找到对应的虚函数的地址,并调用该函数。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122027.html