2011-09-28 5 views
-3

기본 클래스 이니셜 라이저 목록 내에서 구조체를 초기화하려고합니다. 내가 가지고있는 경우 예를 들어,이 같은 같은 클래스 : - 나는 예를 들어, somestruct p 매개 변수를 구조체를 초기화 어떻게 그래서클래스 생성자 목록에서 구조체를 초기화하는 방법은 무엇입니까?

class Foo 
{ 
private: 
    int x; 
    int y; 
    int z; 
    somestruct p; 
public: 
    Foo(): x(1), y(2), z(3) 
    { 
     // other stuff 
    } 
}; 

, 나는 분명 기본 유형이 방법을 초기화 할 수 있습니다? 이런 식으로 초기화하면 p의 디자인에 제한이 있습니까?

+0

약간의 코드를 제공 할 수 있습니까? 나는 이것을 시각화 할 수 없다. –

+0

코드를 표시하거나, 정확히 무엇을 이해했는지 알기가 어렵습니다. – abelenky

+0

이 질문은 매우 잘못 작성되었습니다. 더 많은 노력을하십시오. –

답변

4

아래의 코드에서 m_strctMyClass의 멤버이며 기본 생성자에 의해 초기화됩니다.

struct MyStruct 
{ 
    MyStruct(int i): // Constructor 
     myData(i) 
    { } 

    int myData; 
}; 

class MyClass 
{ 
public: 
    MyClass() : // default constructor 
     m_strct(0) 
    { } 

private:  
    MyStruct m_strct; 
}; 
+0

죄송합니다. 나는 C++ 일 때 C# 답변으로 더 많이 썼습니다. 나를 괴롭히는 @ildjarn에게 감사드립니다. – abelenky

관련 문제