搜尋

首頁  >  問答  >  主體

c++ - c 语言 struct 声明格式

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

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

全部回覆(7)我來回復

  • PHP中文网

    PHP中文网2017-04-17 14:38:01

    這是 C++,不是 C。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 14:38:01

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 14:38:01

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

    回覆
    0
  • 迷茫

    迷茫2017-04-17 14:38:01

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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:38:01

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 14:38:01

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

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 14:38:01

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

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

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

    回覆
    0
  • 取消回覆