nit*_*ian 5 c++ constructor virtual-functions
在Internet上的一个C++教程中,我发现了以下关于构造函数不能为虚拟的原因
我们不能声明虚构造函数.我们应该在编译时指定对象的确切类型,以便编译器可以为该特定类型分配内存.
这种描述是否正确?
我特别对这句话感到困惑:so that the compiler can allocate
memory for that specific type.
Alo*_*ave 19
正如Bjarne自己在这里解释的那样
虚拟调用是一种在给定部分信息的情况下完成工作的机制.特别是,"virtual"允许我们调用只知道接口而不是对象的确切类型的函数.要创建对象,您需要完整的信息.特别是,您需要知道要创建的内容的确切类型.因此,"对构造函数的调用"不能是虚拟的.