При работе с объектно-ориентированным программированием на C нередки случаи возникновения ошибок, связанных с конструкторами по умолчанию. Это подробное руководство поможет вам понять и решить проблему «Для класса не существует конструктора по умолчанию».
При попытке создания экземпляра возникает ошибка «Для класса не существует конструктора по умолчанию». объект класса без предоставления необходимых аргументов его конструктору. Конструктор по умолчанию — это специальная функция-член, которая инициализирует объект со значениями по умолчанию, когда аргументы не указаны.
Наиболее распространенная причина этой ошибки — когда класс был определяется одним или несколькими конструкторами, но не имеет конструктора по умолчанию. Как только класс определяет какой-либо конструктор, компилятор не будет автоматически генерировать конструктор по умолчанию.
Чтобы устранить эту ошибку, у вас есть три варианта:
1 . Определите конструктор по умолчанию:
Вы можете определить конструктор по умолчанию внутри класса, который не принимает никаких аргументов, как показано в исправленном классе ниже:
class GameCryptography { public: Blowfish _blowfish; GameCryptography(); void Decrypt(unsigned char packet[]); void Encrypt(unsigned char packet[]); Blowfish Blowfish; void SetKey(unsigned char k[]); void SetIvs(unsigned char i1[],unsigned char i2[]); };
2. Предоставьте аргументы существующему конструктору:
При создании экземпляра объекта вы можете явно предоставить необходимые аргументы конструктору, устраняя необходимость в конструкторе по умолчанию.
3. Используйте инициализатор «nullptr»:
Эта опция применима только в C 20 и позволяет инициализировать объект nullptr без явного определения конструктора по умолчанию:
GameCryptography* gc = nullptr;
а. Указание алгоритма:
Важно отметить, что режимы работы, такие как ECB и CBC, сами по себе не считаются алгоритмами. Упоминание о них как таковых может привести к недопониманию.
b. Ошибки времени компиляции и времени выполнения:
Ошибки конструктора по умолчанию обычно обнаруживаются во время компиляции. В этом отличие от ошибок во время выполнения, которые возникают во время выполнения программы.
Понимая причины и методы устранения, представленные в этом руководстве, вы можете эффективно устранять ошибки «для класса не существует конструктора по умолчанию» при работе с Классы C.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3