Итак, я использую std :: map в качестве ассоциативного массива. Карта объявлена таковой:
std::map<int, CustomClass*> CustomContainer;
Позже я использую объект CustomContainer в качестве ассоциативного массива, например,
CustomClass* pClass = CustomContainer[ID]
Йосуттис заявляет:
Если вы используете ключ в качестве индекса, для которого еще нет элемента, новый элемент автоматически вставляется в карту. Значение нового элемента инициализируется конструктором по умолчанию его типа. Таким образом, чтобы использовать эту функцию, вы не можете использовать тип значения, у которого нет конструктора по умолчанию
Значение карты имеет тип CustomClass *. Будет ли значение по умолчанию NULL или оно не определено? (Я думаю, что это не так, поскольку указатель не является фундаментальным типом данных). Я думаю, что это также будет зависеть от конструктора и от его поведения ... мысли ???
Единственный конструктор CustomClass выглядит так:
CustomClass::CustomClass(ClassA param1, ClassB param2, ClassC param3, ClassD param4)
:privateClassA(param1),
privateClassB(param2),
privateClassC(param3),
privateClassD(param4)
{
}
Большое спасибо!