相关疑难解决方法(0)

调用超类构造函数的规则是什么?

从子类1调用超类构造函数的C++规则是什么?

例如,我知道在Java中,你必须将它作为子类构造函数的第一行(如果不这样做,则假定对no-arg超级构造函数的隐式调用 - 如果缺少则会给出编译错误) .

c++ inheritance constructor

650
推荐指数
10
解决办法
76万
查看次数

`new` 运算符是否总是调用构造函数?

我的问题受到 Thomas Cormen 教授对其Quora answer $第二条评论的影响。

他说构造函数执行以下三个任务:

  1. 为对象分配内存。

  2. 初始化对象的实例变量,例如,通过在 Python 中隐式调用init。(我还强调init方法不应该初始化一些,而是所有的实例变量。)

  3. 返回对象的引用(即地址)。

但是,C++ *MSDN 文档说它是执行此操作的运算符:new

从自由存储中为类型名称的对象或对象数组分配内存,并返回指向该对象的适当类型的非零指针。

我的问题是,谁是对的?或者,是否还有更多的东西,也许就像new操作员总是调用构造函数一样,正如帖子中的评论所建议的那样?

谢谢。

$ 不幸的是,Quora 没有复制评论链接的选项——我只能为答案这样做。
* 虽然我说的是 C++,但我认为对于 Java 和 C# 等其他语言也是如此(虽然我不是 100% 确定)。

c++ constructor new-operator

5
推荐指数
1
解决办法
2450
查看次数

标签 统计

c++ ×2

constructor ×2

inheritance ×1

new-operator ×1