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

时间:2016-10-25 20:30:52

标签: c++

LinkedListNode* toSort = new LinkedListNode((MTNode*)0, (LinkedListNode*)0,
        (LinkedListNode*)0);

有人可以给我详细解释如何阅读这段代码吗? 特别是,我不理解

中的那些零
(MTNode*)0, (LinkedListNode*)0,(LinkedListNode*)0

2 个答案:

答案 0 :(得分:4)

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

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

现在更有意义吗?它只为每个预期的指针传递空值。

答案 1 :(得分:3)

Literal 0指定一个指向预期指针的nullpointer。对相关指针类型的强制转换是¹冗余的。在现代C ++中只需编写auto* toSort = new LinkedListNode{ nullptr, nullptr, nullptr }; ,最好使用花括号进行构造函数调用,即

function getLastLine(){ 
  var ss    = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("DIBOND ORDERS");
  var range = sheet.getDataRange(); // gets all the data. 
  var values = range.getValues();
  Logger.log("LAST ROW : " + values[values.length -1] );
}

注意:
¹除非有两个或更多的重载接受文字0参数;在这种情况下,强制转换可以用于消除呼叫的歧义,选择正确的构造函数。 功能