C++中初始化构造

问题描述:

例如无名结构成员:C++中初始化构造

class A 
{ 
public: 
    A(); 
private: 
    struct {int x, y; } position_; 
}; 

我的问题是:如何初始化类的构造函数体前position_.xposition_.y?像:

A::A()  //init position_.x and position_.y here 
{ 
} 
+0

有在该代码是完全无关的问题至少两个语法错误。 –

只需使用普通的构造函数初始化列表:

​​

可以初始化它像任何数据成员:在构造函数初始化列表:

A() : position_{1,2} {}  

在申报要点:

struct {int x, y;} position_{1, 2}; 

或两者。


1假设你有C++ 11或更高

+0

我不能使用C++ 11功能来实现我的目标吗? –

+0

两者都需要C++ 11 +(C++ 03中的mem初始化程序中不使用大括号)。 –

+0

@ T.C.Ah是的,好点。 – juanchopanza