在其中之一互联网上的 C++ 教程 http://www.bogotobogo.com/cplusplus/constructor.php,我发现了下面关于为什么构造函数不能是虚拟的描述
我们不能声明虚拟构造函数。我们应该指定准确的
编译时对象的类型,以便编译器可以分配
该特定类型的内存。
这个描述正确吗?
我尤其对这句话感到困惑:so that the compiler can allocate
memory for that specific type
.
正如 Bjarne 本人在他的书中所解释的那样C++ 风格和技术常见问题解答 //www.stroustrup.com/bs_faq2.html#virtual-ctor:
虚拟调用是一种在给定部分信息的情况下完成工作的机制。特别是,“虚拟”允许我们调用只知道接口而不知道对象的确切类型的函数。要创建对象,您需要完整的信息。特别是,您需要知道您想要创建的确切类型。因此,“对构造函数的调用”不能是虚拟的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)