Описание тега default-copy-constructor
7
ответов
C# Автоматическая глубокая копия структуры
У меня есть структура, MyStruct, который имеет частный член private bool[] boolArray; и метод ChangeBoolValue(int index, bool Value), У меня есть класс, MyClass, что имеет поле public MyStruct bools { get; private set; } Когда я создаю новый объект …
05 июл '12 в 01:35
1
ответ
Неявно сгенерированные конструкторы с явным объявлением деструктора
Дело в том, что 4-е издание языка программирования C++ гласит: В этом конкретном случае, если вы забыли удалить операцию копирования или перемещения, никакого вреда не будет. Операция перемещения не генерируется неявно для класса, где пользователь я…
21 авг '16 в 18:34
1
ответ
Скопировать конструктор, определить и объявить разницу?
У меня есть класс Base и класс производного. Если я объявлю конструктор копирования в своем классе, будет ли компилятор определять конструктор копирования при компиляции? Что произойдет, если будет вызван конструктор копирования класса Derived? Зави…
19 фев '13 в 06:01
4
ответа
Ошибка MSVC9.0 или недоразумение виртуального наследства и друзей?
Рассмотрим следующий код: class A { friend class B; friend class C; }; class B: virtual private A { }; class C: private B { }; int main() { C x; //OK default constructor generated by compiler C y = x; //compiler error: copy-constructor unavailable i…
10 окт '10 в 11:56
2
ответа
Класс с объединенным использованием удаленной функции в конструкторе
Я пытаюсь сделать класс матрицы 4*4, он построен из массива из 16 чисел с плавающей запятой, но я также хочу представить его как массив из 4 vec4 (для каждого столбца). Проблема в том, что он не компилируется и выдает ошибку везде, где я вызываю кон…
12 май '15 в 18:15
4
ответа
Являются ли необъявленные конструкторы копирования автоматически встроенными?
Необъявленные (автоматически сгенерированные) конструкторы копирования автоматически помечаются как inline? Если так, и если я не хочу, чтобы они были помечены как inline, означает ли это, что я должен определить один вручную и скопировать каждый от…
11 янв '13 в 20:28
5
ответов
Отказ от копирования конструктора
Это может быть глупый вопрос, но... Я писал ряд классов, в которых используются не копируемые элементы. Эти классы никогда не инициализируются через конструктор копирования в моем источнике. Когда я пытаюсь скомпилировать без предоставления своего с…
27 апр '10 в 19:50
1
ответ
Могу ли я создать объекты класса с классом, который просто предлагает конструктор копирования?
Можно ли создать экземпляры класса, который предлагает только copy-ctor? Или это хороший дизайн, чтобы также удалить copy-ctor, если один удаляет все другие ctor? struct EmptyClass { EmptyClass() = delete; // using compiler generated copy ctor. // e…
24 ноя '18 в 19:24
1
ответ
Как работает оператор по умолчанию = в C++?
У меня были трудные времена, пытаясь понять, как конструктор копирования по умолчанию и оператор по умолчанию = работают в C++. В следующей программе я не понимаю, почему последняя строка c0 = b2; cout <<endl; распечатывает 32944, Оператор = в…
01 апр '18 в 16:23
2
ответа
Делать только константные копии константного объекта
У меня есть класс, который содержит ссылки, такие как: class A { A(B &b) : b(b) {} // constructor B &b; } Иногда b должен быть доступен только для чтения, иногда он доступен для записи. Когда я делаю const A a(b); объект, очевидно, что я хоч…
21 мар '18 в 12:35
2
ответа
Избегать копирования по значению при инициализации ссылки
У меня есть интерфейс функции: struct iFace { virtual Type& getType() = 0; } и идея состоит в том, чтобы получить это как: iFace& iface = getIface(); Type& type = iface.getType(); однако иногда я делаю ошибку и пишу: Type type = iface.ge…
27 апр '11 в 21:14
7
ответов
Является ли конструктор копирования C++ по умолчанию небезопасным? Являются ли итераторы принципиально небезопасными?
Раньше я считал, что объектная модель C++ очень устойчива, когда следуют передовым методам.Однако несколько минут назад у меня было понимание, которого у меня не было раньше. Рассмотрим этот код: class Foo { std::set<size_t> set; std::vector&l…
07 июн '15 в 00:23
1
ответ
В C++0x инициализаторы не статических элементов данных переопределяют неявный конструктор копирования?
Согласно N2628, связанному с C++0x, нестатические инициализаторы членов данных могут быть переопределены явно определенными конструкторами, но это выглядит немного туманным в отношении неявно определенного конструктора копирования. В частности, я за…
21 ноя '11 в 20:53
4
ответа
Почему амперсанд используется в конструкторе копирования?
Почему мы передаем объект класса по ссылке. Когда я удаляю амперсанд (&), я получаю следующую ошибку. "Copy constructor of class A may not have parameter of type A" Что это значит? может быть, компилятор не рассматривает данный конструктор копирован…
12 мар '14 в 10:37
2
ответа
Я все еще получаю конструктор копирования по умолчанию и оператор =, если я определяю те с неконстантными аргументами?
В C++, если я определяю конструктор копирования и operator=, которые принимают неконстантную ссылку на класс, должен ли компилятор по-прежнему предоставлять версии по умолчанию для константной ссылки? struct Test { Test(Test &rhs); Test &ope…
13 авг '12 в 14:48
2
ответа
Почему конструктор копирования не вызывается?
Извините за чрезмерно двусмысленное название.(Из-за отсутствия моих навыков английского языка). Пожалуйста, предложите лучший заголовок. Пожалуйста, рассмотрите следующий код. struct A { typedef std::vector<double> State; // template <class…
06 июн '13 в 02:19
2
ответа
Правильно ли неявно определенный конструктор копирования в C++ вызывает конструктор копирования для членов?
Просто хочу дважды проверить, что конструктор копирования по умолчанию (неявно определенный компилятором) для классов C++ выполняет конструктор копирования для каждой переменной-члена, а также использует старое значение, чтобы получить скопированное…
07 фев '11 в 23:06
1
ответ
Код, использующий конструктор копирования по умолчанию, должен быть segfault, но работает просто отлично
Я провел небольшой эксперимент, чтобы лучше понять, когда неявно вызываются конструкторы / деструкторы, и обнаружил нечто действительно странное. Следующий код вызывает конструктор копирования по умолчанию, когда myFunction() называется. Перед выход…
14 май '18 в 13:45
1
ответ
Не требуется ли созданный по умолчанию конструктор для создания всех базовых классов?
Я сталкивался со случаем, когда безопасный с точки зрения типов C++ производит несоответствующие ctor/dtors. Следующий код генерирует два конструктора для A. Конструктор по умолчанию также создает свою базу (B), но сгенерированный по умолчанию ctor …
07 июл '16 в 23:23
1
ответ
Как измерить производительность конструктора копирования по умолчанию в C++
Я хотел бы знать, сколько времени моя программа проводит в конструкторе копирования по умолчанию для определенного класса. Есть ли способ реализовать конструктор копирования способом, идентичным способу, которым конструктор копирования по умолчанию …
23 май '17 в 23:45