Mor*_*lus 10 c++ oop polymorphism virtual constructor
我想知道虚构造函数的含义是什么以及如何使用它.
另外我知道C++不允许虚拟构造函数,我想知道为什么.
Alo*_*ave 10
虽然可以模拟行为,但C++中没有虚拟构造函数.
为什么C++中没有虚拟构造函数? 我试图给出一个推理: 标准声明在构造函数的右括号之前对象创建是不完整的.因此,对象仅在构造函数结束后存在.
虚拟关键字用于实现多态行为,其中要调用的实际函数在运行时进行评估,具体取决于this指向的实际对象类型.为了使用虚拟表机制调度构造函数,必须有一个完全存在的对象,其中有一个指向虚拟表的指针,但在构造函数内部,对象构造本身并不完整,因此如何指向虚拟表如果物体没有完全形成,是否存在?
this
Bjarne Stroustrup博士的推理:
为什么我们没有虚拟构造函数?
And*_*ron 10
C++不允许虚拟构造函数,因为您需要一个对象来调用虚拟方法!
术语虚拟构造函数用于成语和众所周知的设计模式.这个习语/模式涉及工厂的定义:一个具有虚拟方法的中间对象,其角色是创建有问题的对象.因为该方法是虚拟的,其目的是创建一个对象,所以它被称为"虚拟构造函数".
归档时间:
14 年,7 月 前
查看次数:
5754 次
最近记录: