개발자
안녕하세요 ! 질문 제목이 좀 명확하지 않아서 죄송합니다 ㅠㅠ 다름이 아니라 새로운 enum class 를 구현할 때 이미 구현된 타 enum class를 그대로 가져올 수 있는지 궁금합니다 ! 예를 들어 아래 코드와 같이 (당연히 error 발생하는 코드인 것은 알고 있지만.. 제가 궁금한 부분을 설명 드리기 위해...) enum class ONE { AA, BB }; enum class TWO = ONE; // error.. TWO 라는 enum class 를 새로 구현할 때 이미 구현된 ONE enum class 를 그대로 복사해오도록 구현하는 방법이 궁금합니다 ! 그냥 ONE enum class 사용하면 될 것이지 굳이 새로운 TWO enum class를 생성할 필요가 있나 ~ 라고 당연히 생각하시겠지만... 현재 저의 상황을 설명드리긴 좀 기네요 ㅠㅠ Qt/qml 구조도 설명드려야 되고... 몇시간 째 구글링을 해봐도 답을 못찾겠네요 ㅠㅠ 답변 주시면 무척 감사하겠습니다 !
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2월 13일
안녕하세요. 이런 기능은 C++ 표준에 직접적으로 포함되어 있지 않습니다. 한 enum class에서 다른 enum class로 복사 또는 상속을 지원하지 않습니다. 때때로 이와 같은 요구 사항이 있으면, 일반적으로 설계와 구조에 대해 다시 생각해 볼 필요가 있습니다. 즉, 동일한 값을 공유하는 두 개의 분리된 열거형이 있다면, 그것들은 실제로 하나의 열거형이어야 할 가능성이 높습니다. 그러나 일부 workaround가 있습니다. 예를 들어, macro를 활용하여 동일한 값들을 여러 번 정의할 수 있는 방법입니다. ```c++ #define ENUM_VALUES \ AA, \ BB enum class ONE { ENUM_VALUES }; enum class TWO { ENUM_VALUES }; #undef ENUM_VALUES ``` 위의 코드는 서로 다른 두 enum 클래스 ONE과 TWO 모두에 AA와 BB라는 동일한 항목을 가집니다. 그러나 이 해결책은 매크로를 사용하기 때문에 약간 복잡할 수 있으며, 일반적으로 매크로 사용은 최소화 하는 것이 좋습니다(특히 큰 프로그램에서).
지금 가입하면 모든 질문의 답변을 볼 수 있어요!