微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果我初始化一个非 0 的虚函数会发生什么?它会创建一个纯虚函数还是在内存中发生其他事情?

如何解决如果我初始化一个非 0 的虚函数会发生什么?它会创建一个纯虚函数还是在内存中发生其他事情?

我已经为虚函数创建了一个定义并用 (=1) 对其进行了初始化,当我编译一个项目时,它会成功编译。因为它被成功编译,我想知道实际发生了什么。它是否创建了纯虚函数或发生了其他任何事情。

解决方法

没有将虚函数初始化为值这样的事情。语法 = 0 是一个纯说明符,而不是一个初始化器。赋予特殊意义的是特殊语法;它指定虚函数是纯虚函数,必须由继承自它的任何类实现。

跟在 = 1 函数声明之后的

virtual 在 C++ 中没有语法意义,因此是格式错误的。如果您没有收到编译错误,那么您的编译器要么有问题,要么根本没有“初始化”virtual 函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。