请解释一下我的结构定义中的冒号?
可能的重复:
C++ 构造函数名称后面的冒号有什么作用?
我正在读一本关于 CUDA 和 CUDA 的书我在阅读此 C++ 语法时遇到问题。我不确定要搜索什么,所以这就是我在这里发帖的原因。
struct cuComplex {
float r;
float i;
cuComplex( float a, float b ) : r(a) , i(b) {}
}
cuComplex
语句有什么作用?具体来说:
cuComplex( float a, float b ) : r(a) , i(b) {}
这叫什么,我可以了解一下吗?
Possible Duplicate:
What does a colon following a C++ constructor name do?
I'm reading a book about CUDA & I'm having trouble reading this C++ syntax. I'm not sure what to search for so that's why I'm posting here.
struct cuComplex {
float r;
float i;
cuComplex( float a, float b ) : r(a) , i(b) {}
}
What does the cuComplex
statement do? Specifically:
cuComplex( float a, float b ) : r(a) , i(b) {}
what is this called so I can learn about it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是C++语法。
是为此结构定义的构造函数。
称为成员初始化。这里本地成员 r 和 i 被设置为传递给构造函数的参数 a 和 b。
剩下的就是一个空函数实现。
This is C++ syntax.
is the constructor defined for this struct.
is called member initialization. Here the local members r and i are set to the parameters a and b passed to the constructor.
The rest is an empty function implementation.
那是 C++,而不是 C,因为 C 结构不能以这种方式包含函数(它们可以包含函数指针,但这与问题无关)。这是“cuComplex”类型的构造函数,需要两个浮点数。它使用传入的值初始化两个成员变量“r”和“r”。
每个评论的编辑: r(a) 和 i(b) 部分正在使用构造函数的参数值初始化成员变量。
That is C++, not C, as C structs cannot contain functions in that manner (they could contain a function pointer, but that is irrelevant to the question). That is a constructor for the type "cuComplex" that takes two floats. It initializes the two member variables 'r' and 'r' with the passed in values.
EDIT per comment: The r(a) and i(b) parts are initializing the member variables with the values of the parameters to the constructor.
: cuComplex ctor 中的 r(a) , i(b)
在分配时用括号之间的值构造内存。: r(a) , i(b)
in cuComplex ctor construct memory at allocation with value between parentheses.