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

2003
Что такое идиома копирования и обмена?

Что это за идиома и когда ее следует использовать? Какие проблемы это решает? Меняется ли идиома при использовании C ++ 11? Хотя это упоминалось во многих местах, у нас не было ни единого вопроса и ответа «что это такое», так что вот оно. Вот частичный список мест, где это было упомянуто ранее:...

275
Что такое более высокий тип в Scala?

Вы можете найти следующее в Интернете: Тип с более высоким родом == Конструктор типа? class AClass[T]{...} // For example, class List[T] Некоторые говорят, что это тип с более высоким родом, потому что он абстрагируется от типов, которые будут соответствовать определению. Типы с более высоким родом...

176
статические конструкторы в C ++? Мне нужно инициализировать частные статические объекты

Я хочу иметь класс с закрытым статическим членом данных (вектор, который содержит все символы az). В Java или C # я могу просто создать «статический конструктор», который будет запускаться до того, как я создам экземпляры класса, и установить статические члены-данные класса. Он запускается только...

173
Отключить конструктор копирования

У меня есть класс: class SymbolIndexer { protected: SymbolIndexer ( ) { } public: static inline SymbolIndexer & GetUniqueInstance ( ) { static SymbolIndexer uniqueinstance_ ; return uniqueinstance_ ; } }; Как я должен изменить его, чтобы отключить код вроде: SymbolIndexer symbol_indexer_ =...

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

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

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

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

154
Прекращение преобразования C ++ из строковой константы в 'char *'

У меня есть класс с private char str[256]; и для этого у меня есть явный конструктор: explicit myClass(const char *func) { strcpy(str,func); } Я называю это так: myClass obj("example"); Когда я компилирую это, я получаю следующее предупреждение: устаревшее преобразование из строковой константы в...

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

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

128
Параметры конструктора scala по умолчанию имеют значение private val?

Я пытался: class Foo(bar: Int) против: class Foo(private val bar: Int) и они, кажется, ведут себя одинаково, хотя я не мог найти нигде, говорящего, что (bar: Int)расширяется до, (private val bar: Int)поэтому мой вопрос: идентичны ли они / похожи? Кстати, я пытался использовать -Xprint:typerэти...

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...

87
Перегрузка конструктора копирования и оператора = в C ++: возможна ли общая функция?

Поскольку конструктор копирования MyClass(const MyClass&); и оператор = перегрузка MyClass& operator = (const MyClass&); имеют практически одинаковый код, одинаковый параметр и отличаются только при возврате, возможно ли иметь общую функцию для них обоих?...

86
Как мне работать с мьютексами в подвижных типах в C ++?

По дизайну std::mutexне подлежит перемещению или копированию. Это означает, что класс, Aсодержащий мьютекс, не получит конструктор перемещения по умолчанию. Как сделать этот тип Aперемещаемым потокобезопасным способом?...

41
Идиоматический способ различения двух нулевых конструкторов

У меня есть такой класс: struct event_counts { uint64_t counts[MAX_COUNTERS]; event_counts() : counts{} {} // more stuff }; Обычно я хочу по умолчанию (ноль) инициализировать countsмассив, как показано. Однако в выбранных местах, определенных профилированием, я хотел бы подавить инициализацию...