그래서 내가하고 싶은 것은 객체에 대한 포인터에 열거 형을 매핑하는 것입니다. 이것은 내 현재 코드입니다.
enum state {A,B,C};
class imageTexture {
public:
imageTexture(std::string path) {};
};
int main() {
std::map<state, imageTexture*> theMap;
theMap[A] = new imageTexture("a");
return 0;
}
온라인 버전 : http://ideone.com/v9HA4h
이것이 작동을 멈추는 곳입니다. 전체 오류는 다음과 같습니다.
지도에 대해 실행 가능한 오버로드 연산자 []가 없습니다.
나는 이것에 대해 약간의 연구를했고 나는 일정한 것을 발견했지만이 오류를 잘 극복 할 수있었습니다. 또한지도에 대한 몇 가지 예제 코드를 살펴 보았고 더 혼란스러워졌습니다.
std::map<string, int> theMap;
theMap['A'] = 1;
이것은 내가 한 것과 동일하지만 내 것이 작동하지 않습니다. 누군가 나를 도울 수 있습니까? 모든 설명을 주시면 감사하겠습니다.
편집 : 문제가있는 코드 부분을 업데이트합니다.
편집 2 : 온라인으로 코드를 시도했는데 작동합니다. 그러나 내 노트북에는 없습니다. 내 컴파일러가 C ++ 11에서 작동하지 않는 문제일까요?
귀하의 코드 또는 게시물을 검토하십시오. 중요한 것이 누락 된 것 같습니다. 이 코드는 완벽하게 작동합니다.
#include <iostream>
#include <map>
enum state { RED, YELLOW, GREEN };
class foo
{
int a;
};
int main()
{
std::map<state, foo *> theMap;
theMap[RED] = new foo();
std::cout << "That's all" << std::endl;
}
편집 됨 : C ++ 98에서도 작동합니다 (-std = c ++ 98).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다