相关疑难解决方法(0)

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

我正在阅读这个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;
  }
Run Code Online (Sandbox Code Playgroud)

到目前为止我可以"演绎"第一行只声明了construtor名称,"::"听起来像"属于"我.而{}之间的代码是它自己的构造函数体.

我"认为"在参数之后是什么,第一个"{"就像方法默认参数或其他什么,但我在网上找不到合理的解释.我在示例中找到的大多数C++构造函数几乎与Java中的相同.

在我的假设中,我是对的吗?"::"就像属于,而params和body之后的列表就像"默认args"之类的东西?

更新: 谢谢你的答案.那些被称为方法?(我猜不是)在构造函数体内调用它们有什么不同

c++ constructor

11
推荐指数
3
解决办法
6230
查看次数

使用初始化列表的优点?

可能重复:
初始化列表的好处

我想知道使用初始化程序列表初始化成员是否有利于将它们放在构造函数中.某些东西必须使用初始化列表,但对于大多数没有的东西,是否有区别?我更喜欢后者,因为当我有多个构造函数时,我更喜欢简单地调用construct()来促进代码重用.

谢谢

c++

8
推荐指数
2
解决办法
6465
查看次数

C++:newbie初始化列表问题

新手在这里.我在看公司代码.

似乎A类中没有成员变量但是在A的构造函数中它初始化了一个对象B,即使类A不包含任何类型B的成员变量(或任何成员变量!).

我想我甚至不能理解问题......所以这里发生了什么!?我的直觉是你甚至在尝试初始化它之前需要一个变量.如何在没有对象的情况下初始化对象有可能(或者有什么用呢)?

.H:

class A: public B
{
public:
     A(bool r = true);
     virtual ~A;

private:
}
Run Code Online (Sandbox Code Playgroud)

的.cpp:

A::A(bool r) : B(r ? B::someEnumeration : B::anotherEnumeration)
{
}

A::~A()
{
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

谢谢,jbu

c++ list initializer

3
推荐指数
1
解决办法
600
查看次数

标签 统计

c++ ×3

constructor ×1

initializer ×1

list ×1