首页  >  问答  >  正文

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

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

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

全部回复(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++中类定义可以用struct或者class,区别是struct成员默认为public,class默认为private

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

    是C++的构造函数,val(x), next(NULL)表示初始化。

    回复
    0
  • 取消回复