static const map<const Type*, int>* priority;
其中Type是我自己的特殊類。爲什麼C++告訴我沒有[]匹配我傳入的類型?
初始化(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>>>();
最後,嘗試使用它(它告訴我,我傳遞了錯誤的型)
static void setPriority(const Type* type, int newPriority)
{
(*priority)[type] = newPriority;
}
C++是一種編程語言,它不會告訴你的東西。你的編譯器在說什麼? (例如,你在使用什麼編譯器,以及你得到的錯誤或警告是什麼?) – dreamlax
爲什麼你使用這麼多的指針?這似乎有點代碼味道。 –
如果所有你想要的都是默認值,沒有理由說出比較器和分配器。把它們留下。 –