2015-11-05 131 views
-1

例如無名結構成員:C++中初始化構造

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

我的問題是:如何初始化類的構造函數體前position_.xposition_.y?像:

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

有在該代碼是完全無關的問題至少兩個語法錯誤。 –

回答

2

只需使用普通的構造函數初始化列表:

​​
1

可以初始化它像任何數據成員:在構造函數初始化列表:

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