c – 构造函数中冒号后的成员变量列表是什么?

c – 构造函数中冒号后的成员变量列表是什么?,第1张

概述我正在读这个C开源代码,我来到一个构造函数,但我不明白(基本上是因为我不知道C:P) 我理解C和Java非常好. TransparentObject::TransparentObject( int w, int x, int y, int z ) : _someMethod( 0 ), _someOtherMethod( 0 ), _someOtherOtherMe 我正在读这个C开源代码,我来到一个构造函数,但我不明白(基本上是因为我不知道C:P)

我理解C和Java非常好.

transparentObject::transparentObject( int w,int x,int y,int z ) :      _someMethod( 0 ),_someOtherMethod( 0 ),_someOtherOtherMethod( 0 ),_someMethodX( 0 )   {       int bla;       int bla;  }

到目前为止,我可以“推论”第一行只声明了这个名字,“::”听起来像我的“属于”.而{}之间的代码是自己的构造函数体.

我“认为”之后的功能和第一个“{”就像方法默认参数或某事,但我没有找到一个合理的解释在网上.我在实例中发现的大多数C构造函数与Java中的几乎相同.

我的假设是对的吗? “::”就像属于,而params和body之后的列表就像“default args”一样吗?

更新:
感谢您的答案.
那些被称为方法吗(我猜没有),在构造函数体内调用它们的区别是什么

解决方法 最常见的情况是这样的:
class foo{private:    int x;    int y;public:    foo(int _x,int _y) : x(_x),y(_y) {}}

这将将x和y设置为在构造函数参数中的_x和_y中给出的值.这通常是构建声明为数据成员的任何对象的最佳方法.

您也可能正在查看构造函数链接:

class foo : public bar{    foo(int x,int y) : bar(x,y) {}};

在这种情况下,类的构造函数将调用其基类的构造函数并传递值x和y.

进一步剖析功能:

transparentObject::transparentObject( int w,int z ) :    _someMethod( 0 ),_someMethodX( 0 ) {     int bla;     int bla;}

:: – 运算符称为范围解析运算符.它基本上只是表示transparentObject是transparentObject的成员.其次,您假设构造函数的正文发生在花括号中是正确的.

UPDATE: Thanks for the answers. May those be called methods? ( I guess no ) and what is the difference of call them within the constructor body

有更多关于这个问题的信息比我可能会给你here.你必须使用初始化器列表的最常见的区域是当您初始化引用或const时,因为这些变量必须在创建时立即被赋予一个值.

总结

以上是内存溢出为你收集整理的c – 构造函数中冒号后的成员变量列表是什么?全部内容,希望文章能够帮你解决c – 构造函数中冒号后的成员变量列表是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1233830.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存