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

what happens if I initialize a virtual function other than 0? will it create a pure virtual function or what else happens in memory?

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

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

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