2013-07-25 3 views
1

클래스 A에 열거 형이 있고 클래스 B에 클래스 A 인스턴스가 멤버로 있습니다. 어떻게 내가만큼 ab가 공개로이 enumeraion에게다른 클래스의 열거 형 액세스

+0

코드가 전혀 컴파일되지 않습니다. 클래스가 클래스 여야하며 이름과 값 사이에'= '가 있어야합니다. – nio

+0

[클래스 내에서 enum 선언하기] (http://stackoverflow.com/q/2503807/96780)도 참조하십시오. –

답변

1
#include <iostream> 
using namespace std; 

class A{ 
    public: 
    enum ab{ 
    a= 1, 
    b= 2 }; 
}; 

class B{ 
    public: 
    void test() 
    { 
     enum A::ab x=A::a; 
     cout << "test A::a = " << x << endl; 
     x=A::b; 
     cout << "test A::b = " << x << endl; 
    } 
}; 

int main() 
{ 
    cout << "A::a = " << A::a << endl; 
    cout << "A::b = " << A::b << endl; 
    class B b; 
    b.test(); 
} 

A는, B는 네임 스페이스 그래서 클래스에 상주 않는 열거 이름, 당신은 A::a 같은 A:: 접두사를 사용하여 액세스 할 수 있습니다.

+0

내가 A :: a를 사용하여 1을 얻을 수 있습니까? – Sijith

+0

예, 제가 예제를 다시 작성하겠습니다. – nio

3
A::ab 

을 얻을 필요가 클래스 B에서이 예를

Class A{ 
    enum ab{ 
    a 1, 
    b 2 }; 
} 

를 사용하여 B 급에서 A 급 enumeraion에 액세스 할 수 있습니다.

물론 enum의 구문을 수정해야합니다.

도 참조하십시오. this question. 이처럼

2

가 :

class A 
{ 
public: 
    enum ab{ 
    a = 1, 
    b = 2 }; 
} 

class B 
{ 
    A::ab myVariable; 
} 
2

당신은 물론

A::a; 
A::b; 

를 통해

A::ab; 

그 값을 통해 유형에 액세스,이 AB 공공 가정합니다.

관련 문제