Там нет конструктора по умолчанию
У меня есть класс MemEdit
с одним конструктором, который принимает один параметр MemEdit(HANDLE _hProc);
, Когда в main()
Я создаю один экземпляр MemEdit m = { hProc };
и инициализировать другой объект с этим экземпляромClassb b = { m };
Classb::Classb(MemEdit _mem)
{
mem = _mem; //Error: There is no default constructor
}
Я знаю, что мне нужно объявить конструктор по умолчанию при наличии параметризованного конструктора и хочу инициализировать объект без параметров, но разве он не работает здесь? Я также попытался создать конструктор по умолчанию, который не решил проблему.
1 ответ
Первое, что делает код перед вводом вашего конструктора, это... ну... создайте члены! Это делается путем вызова конструктора по умолчанию для всех из них. На самом деле ваша ошибка на несколько строк выше:
Classb::Classb(MemEdit _mem) //Error: There is no default constructor
{
mem = _mem;
}
Вы можете исправить это, указав, какой конструктор следует вызывать с помощью списка инициализации поля!
Classb::Classb(MemEdit _mem) : mem(_mem) { }