c++如何阅读这个创建新构造函数的代码
c++ how to read this creating new constructor code?
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参数的重载;在这种情况下,强制类型转换可以消除调用的歧义,选择正确的构造函数。一口>
相关文章:
- 有没有一种代码密度较低的方法来使用非默认构造函数初始化数组?
- 是否可以避免在以下代码中复制/移动构造函数的需要?
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- 为什么我的代码中没有调用move构造函数
- 基于构造函数的存在禁用代码
- 如何从构造函数返回错误代码?
- 为什么在我的代码中调用复制构造函数而不是移动构造函数?
- 如何基于构造函数参数模板化类成员函数的代码
- C++,处理多个构造函数重载和冗余代码
- 为什么在使用转换构造函数编译代码时需要 const 复制构造函数?
- 该构造函数代码如何将指针作为参数
- 复制赋值和复制构造函数(代码C++的差异)
- 在构造函数代码之前禁用默认类成员初始化
- 以下移动构造函数代码安全吗?
- C++构造函数代码..这叫什么
- 如何更改SWIG生成的CSHARP文件中的构造函数代码
- C++某些构造函数代码之间的区别
- 如何正确编写构造函数代码
- 在全局空间中定义的类的构造函数代码何时运行?
- 从静态构造函数代码调用pthread库时失败