static const map<const Type*, int>* priority;
여기서 Type은 내 자신의 특수 클래스입니다.C++이 내가 전달한 유형과 []가 일치하지 않는다고 말하는 이유는 무엇입니까?
초기화
const map<const Type*, int, less<const Type*>, allocator<pair<const Type* const, int>>>* ToolProperty::priority
= new map<const Type*, int, less<const Type*>, allocator<pair<const Type* const, int>>>();
그리고 (이을 요구 C++ 내가 아무 생각이 왜, 자동차도 작동하지 않을 것입니다) 마지막으로, 그것은 나를 말하고 어디 잘못 전달하고있어 것을 (그것을 사용하려고 타입)
static void setPriority(const Type* type, int newPriority)
{
(*priority)[type] = newPriority;
}
C++는 프로그래밍 언어이며, 사용자에게 알려주지 않습니다. 당신의 컴파일러는 무엇을 말하고 있습니까? (어떤 컴파일러를 사용하고 있는지, 그리고 어떤 오류나 경고가 나옵니까?) – dreamlax
왜 많은 포인터를 사용하고 있습니까? 약간의 코드 냄새가 나는 것처럼 보입니다. –
당신이 원하는 것이 모두 기본값이라면 Comparator와 할당자를 쓸 이유가 없습니다. 그냥 내버려둬. –