c++ - c 语言 struct 声明格式
高洛峰
高洛峰 2017-04-17 14:36:01
0
7
556

请问一下,下面代码第五行的语法是什么意思呢?

struct ListNode {
public:
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(7)
洪涛

這是 C++,不是 C。

迷茫

C++的結構體和C的結構體略有不同:C++結構體對C結構體做了擴充,可以有成員函式。因此,C++結構體更像是類,只是其所有成員預設都是public,這點與類別正好相反。
程式碼中第5行是建構函數,「:」後面是建構函數的參數列表,用來對成員變數初始化。

大家讲道理

這不是LeetCode上給的鍊錶節點嗎?第五行就是構造函數啊。

迷茫

把struct理解成class,這就很明顯了

Peter_Zhu

第五行是C++中的建構子

洪涛

這是C++,第五行是類別的建構函數,使用初始化列表進行初始化。 c++中struct和class差不多(具體區別自行查找),而c語言中的struct裡是不能定義函數的。

刘奇

這是C++,C++中類別定義可以用structclass,區別是struct成員預設為public,class預設為private

ListNode(int x) : val(x), next(NULL) {}

是C++的建構函數,val(x), next(NULL)表示初始化。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板