请问一下,下面代码第五行的语法是什么意思呢?
struct ListNode { public: int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
這是 C++,不是 C。
C++的結構體和C的結構體略有不同:C++結構體對C結構體做了擴充,可以有成員函式。因此,C++結構體更像是類,只是其所有成員預設都是public,這點與類別正好相反。 程式碼中第5行是建構函數,「:」後面是建構函數的參數列表,用來對成員變數初始化。
這不是LeetCode上給的鍊錶節點嗎?第五行就是構造函數啊。
把struct理解成class,這就很明顯了
第五行是C++中的建構子
這是C++,第五行是類別的建構函數,使用初始化列表進行初始化。 c++中struct和class差不多(具體區別自行查找),而c語言中的struct裡是不能定義函數的。
這是C++,C++中類別定義可以用struct或class,區別是struct成員預設為public,class預設為private。
struct
class
public
private
ListNode(int x) : val(x), next(NULL) {}
是C++的建構函數,val(x), next(NULL)表示初始化。
val(x), next(NULL)
這是 C++,不是 C。
C++的結構體和C的結構體略有不同:C++結構體對C結構體做了擴充,可以有成員函式。因此,C++結構體更像是類,只是其所有成員預設都是public,這點與類別正好相反。
程式碼中第5行是建構函數,「:」後面是建構函數的參數列表,用來對成員變數初始化。
這不是LeetCode上給的鍊錶節點嗎?第五行就是構造函數啊。
把struct理解成class,這就很明顯了
第五行是C++中的建構子
這是C++,第五行是類別的建構函數,使用初始化列表進行初始化。 c++中struct和class差不多(具體區別自行查找),而c語言中的struct裡是不能定義函數的。
這是C++,C++中類別定義可以用
struct
或class
,區別是struct
成員預設為public
,class預設為private
。是C++的建構函數,
val(x), next(NULL)
表示初始化。