c语言中:是什么意思?(不是三元表达式,只是单独的冒号)

struct record{
node* a;
int state;
record(node* a,int state):a(a),state(state){}
};
上述的代码中

record(node* a,int state):a(a),state(state){}这个语句是什么意思呀?

这是c++的成员初始化列表,作用是在本结构(或本类)的构造函数中用来初始化结构或类的数据成员、也可以调用父类(或父结构)的构造函数,不是c语言的语法。

一个c++的例子:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-06
在c++中(注意不是C语言),struct与class的不同是默认成员是以public权限形式出现,而class是private,其他一致。
再说回上面你的问题,如果struct在这里表示是声明一个类,那么这一行就是我们所谓的构造函数,而这里的冒号表示的是初始化列表的使用。
如果这里是C语言,那么没有类的说法,也就不存在构造函数,这里这应该是错误的。所以这里是c++的语法。
第2个回答  2022-01-06

你这个写的不是C语言的代码,应该是C++的代码

这里的:是构造函数起分割的作用,是类给成员变量赋值的方法,初始化列表

本回答被网友采纳
第3个回答  2022-01-06
python的ctypes先将 C 编译成动态链接库的形式,即 Windows 下的 .dll 文件,或者 Linux 下的 .so 文件。 函数名后加箭头->,参数名后加冒号: def func(a,text:st...
第4个回答  2022-01-06
你确认程序正确?

或许 是段 错误的 代码?
相似回答