c++如何阅读这个创建新构造函数的代码

c++ how to read this creating new constructor code?

本文关键字:构造函数 代码 创建 何阅读 c++      更新时间:2023-10-16
LinkedListNode* toSort = new LinkedListNode((MTNode*)0, (LinkedListNode*)0,
        (LinkedListNode*)0);

谁能给我详细解释一下如何阅读这段代码?特别是

里面的零我不明白
(MTNode*)0, (LinkedListNode*)0,(LinkedListNode*)0

在更现代的c++中,它看起来像:

LinkedListNode* toSort = new LinkedListNode(nullptr, nullptr, nullptr);

现在更有意义了吗?

文字0指定需要指针的空指针。对相关指针类型的强制转换是多余的。在现代c++中,只写nullptr,最好在构造函数调用时使用花括号,即

auto* toSort = new LinkedListNode{ nullptr, nullptr, nullptr };

<一口>指出:
¹除非有两个或多个接受0参数的重载;在这种情况下,强制类型转换可以消除调用的歧义,选择正确的构造函数。