2017-11-27 3 views
-2

열거 형 및 구조체가 처음이므로이 코드를 디버깅하는 방법에 어려움이 있습니다. 내가 아는 한이 코드는 이미 사실이며 남성은 성 안에 0 위치에 있으므로 0을 출력해야합니다.구조체 내의 열거 형

#include <bits/stdc++.h> 

using namespace std; 

struct Employee{ 
    int number; 
    enum gender{Male,Female}; 
    enum language{English,Mandarin}; 
    enum experience{onetofiveyears,fivetotenyears}; 
}personality; 

int main(){ 
    personality.gender d = Male; 
    cout << d; 
} 

이 문제를 해결하는 방법에 대해서는 잘 모릅니다. 나는 너희들이 내가 이미 연구를했기 때문에 내가 도와 주길 바래. 그것이 효과가 없기를 바란다. 도와 줘서 고마워.

+1

컴파일됩니까? –

+1

''Employee :: gender'' (독립형 젠더) 유형의'd'를 만들려고합니까 아니면 peronality의성에 액세스하려고합니까? –

+0

'#include '- 아니, 아니, 아니. * 그렇게하지 마십시오. –

답변

1

범위 분석을 사용하여 열거 형을 참조해야합니다.

Employee::gender d = Employee::gender::Male; 
std::cout << d; 
+0

::와 점 (.)의 차이점은 무엇입니까? 그래, 내가 사용하는 경우에만 경고가 있습니다 :하지만 점 (.)을 사용하면 오류가 발생합니다. – truthprogrammer99

+0

도트 (.)를 사용할 때 왜 작동하지 않습니까 ?? – truthprogrammer99

+0

'.'는 객체의 멤버를 참조합니다. 개체 내의 열거 형 선언 자체는 구성원이 아닙니다. 열거 형의 멤버 인스턴스를 생성 할 수 있으며,이 인스턴스를'.'로 참조 할 수 있습니다. [추가 정보] (https://stackoverflow.com/questions/4984600/when-do-i-use-a-dot-arrow-or-double-colon-to-refer-to-members-of-a-class -in-c) – lcs