Вопросы с тегом «default-constructor»

169
Чем «= default» отличается от «{}» для конструктора и деструктора по умолчанию?

Я первоначально разместил это как вопрос только о деструкторах, но теперь я добавляю рассмотрение конструктора по умолчанию. Вот оригинальный вопрос: Если я хочу дать моему классу деструктор, который является виртуальным, но в остальном такой же, как и тот, который генерирует компилятор, я могу...

161
Почему конструктор по умолчанию без параметров исчезает при его создании с параметрами

В C #, C ++ и Java, когда вы создаете конструктор, принимающий параметры, стандартный параметр без параметров исчезает. Я всегда только принимал этот факт, но теперь я начал задаваться вопросом, почему. В чем причина такого поведения? Это просто «мера безопасности / догадка», говорящая «Если вы...

132
Kotlin с JPA: ад конструктора по умолчанию

Как требует JPA, @Entityклассы должны иметь конструктор по умолчанию (без аргументов) для создания экземпляров объектов при их извлечении из базы данных. В Kotlin свойства очень удобно объявлять в основном конструкторе, как в следующем примере: class Person(val name: String, val age: Int) { /* ......

127
Условия для автоматического создания оператора по умолчанию / копирования / перемещения и оператора присваивания копирования / перемещения?

Я хочу освежить свою память об условиях, при которых компилятор обычно автоматически генерирует конструктор по умолчанию, конструктор копирования и оператор присваивания. Я припоминаю, что были некоторые правила, но я не помню, а также не могу найти авторитетный ресурс в Интернете. Кто-нибудь может...

104
Инициализация по умолчанию std :: array?

В C ++ 11 std::arrayесть ли у меня гарантия, что синтаксис std::array<T, N> x;инициализирует все элементы массива по умолчанию? РЕДАКТИРОВАТЬ : если нет, существует ли синтаксис, который будет работать со всеми массивами (включая массивы нулевого размера) для инициализации всех элементов их...

98
Создание экземпляра типа без конструктора по умолчанию в C # с использованием отражения

В качестве примера возьмем следующий класс: class Sometype { int someValue; public Sometype(int someValue) { this.someValue = someValue; } } Затем я хочу создать экземпляр этого типа, используя отражение: Type t = typeof(Sometype); object o = Activator.CreateInstance(t); Обычно это сработает,...

92
Когда частный конструктор не является частным конструктором?

Допустим, у меня есть тип, и я хочу сделать его конструктор по умолчанию закрытым. Я пишу следующее: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class 'C' (clang++) // error C2248: 'C::C' cannot...

17
Оператор new () ведет себя по-разному, когда оператор delete () удаляется в зависимости от существования конструктора по умолчанию

Создание нового объекта класса C с оператором new () выдает здесь ошибку: class C { public: C() {} virtual ~C() {} void operator delete(void*) = delete; }; int main() { C* c = new C; } с C2280: 'void C::operator delete(void *)': function was explicitly deleted Но когда я заменяю C() {} с C() =...