Вопросы по теме 'copy-constructor'

Конструктор автоматического указателя в VC2008
У меня есть реализация автоматического указателя: template <typename T, bool Arr = false> class GAutoPtr { T *Ptr; public: typedef GAutoPtr<T, Arr> &AutoPtrRef; GAutoPtr(T *ptr = 0) { Ptr = ptr; }...
511 просмотров

стд::строка х(х);
std::string x(x); Это очень сильно падает на моем компиляторе. Означает ли это, что я должен тестировать this != &that в своих собственных конструкторах копирования, или я могу предположить, что ни один клиент никогда не будет таким глупым?
1016 просмотров
schedule 16.08.2023

С++ - вызов оператора присваивания при создании вместо конструктора копирования
Я хочу обеспечить явное преобразование между структурами вроде нативных типов: int i1; i1 = some_float; // this generates a warning i1 = int(some_float): // this is OK int i3 = some_float; // this generates a warning Я думал использовать...
1526 просмотров

Обходной путь неограниченного объединения С++
#include <stdio.h> struct B { int x,y; }; struct A : public B { // This whines about "copy assignment operator not allowed in union" //A& operator =(const A& a) { printf("A=A should do the exact same thing as A=B\n"); }...
1455 просмотров

в C ++, как дать конструктору копии класса и оператору присваивания одинаковые функции без дублирования кода
Возможные дубликаты: Что такое копия- идиома подкачки? Перегрузка конструктора копирования и оператора = в C ++: возможна ли общая функция? Можно ли сделать так, чтобы тело конструктора копирования и оператора присваивания...
1702 просмотров

RValue, разрешение шаблона и конструкторы копирования (в Visual C++ 2010)
Я создаю простой контейнерный класс, но сталкиваюсь с некоторыми проблемами (повторная сборка в Visual C++ 2010, ошибка ссылки rvalue? ) #include <cassert> #include <utility> template<typename T0> class MyType { public:...
397 просмотров

Как написать конструктор копирования класса Template
Как написать конструктор копирования для класса шаблона. Так что, если параметр шаблона является другим определяемым пользователем классом, его конструктор копирования также вызывается. Ниже мой класс template <typename _TyV> class...
13568 просмотров
schedule 23.08.2023

Разница между двумя способами объявления объекта в стеке
В чем разница между двумя следующими объявлениями, если я не указал конструктор копирования и operator= в классе Beatle ? Beatle john(paul); а также Beatle john = paul; Редактировать: При назначении объектов оператор = неявно...
131 просмотров

C++, как правильно скопировать std::vector‹Class *› в конструкторе копирования?
Я использую эти два класса // This is generic data structure containing some binary data class A { public: A(); A(const A&); ~A(); } // Main data container class B { public: B(); B( const B&); ~B(); protected:...
13688 просмотров
schedule 14.03.2022

Копировать конструктор с более чем одним параметром
Я изучаю С++ и читал конструктор копирования из файла C++: The Complete Reference . В книгах сказано, что Конструктору копирования разрешено иметь дополнительные параметры, если для них определены аргументы по умолчанию. Однако во всех...
3061 просмотров
schedule 04.05.2023

Убедитесь, что конструктор копирования никогда не вызывается, когда существует конструктор перемещения
При разработке класса, который можно перемещать, но не копировать, естественно объявить конструктор копирования закрытым. При наличии только перемещаемых и тривиально копируемых объектов в качестве членов экземпляра имеет смысл разрешить компилятору...
348 просмотров

Почему инициализация копирования такая, какая она есть? Зачем нужен конструктор копирования?
Возможный дубликат: В чем причина того, что копирование и прямая инициализация ведут себя по-разному? И под инициализацией копирования я имею в виду так: struct MyStruct { MyStruct(int) {} MyStruct(const MyStruct&) {}...
121 просмотров

Как вернуть копию производного объекта в векторе базовых классов?
Вот проблема, у меня есть вектор указателей на абстрактный базовый класс, заполненный производными объектами, например: class AbstractBase { /* ... */ }; clase Derived1 : public AbstractBase { Derived1() { } Derived1( const...
1070 просмотров

конструктор копирования класса, который имеет определяемый пользователем член класса
Я читаю размышления в главе 14 C ++: «Функции, которые не наследуются автоматически» class GameBoard { public: GameBoard() { cout << "GameBoard()\n"; } GameBoard(const GameBoard&) { cout << "GameBoard(const...
1114 просмотров

Что такое конструктор преобразования в C++? Для чего это?
Я слышал, что в С++ есть нечто, называемое «конструкторами преобразования» или «конструкторами преобразования». Что это такое и для чего они? Я видел упоминание об этом коде: class MyClass { public: int a, b; MyClass( int i ) {} }...
43712 просмотров
schedule 25.12.2022

С++ побитовое или поэлементное копирование?
В чем разница между побитовым и поэлементным копированием? Конечно, если вы скопируете элементы, то в конечном итоге вы все равно скопируете биты, представляющие элементы?
5040 просмотров
schedule 14.03.2024

Запрет определения конструктора копирования в унаследованном классе
Я хочу сделать абстрактный базовый класс некопируемым и заставить любые производные от него классы быть некопируемыми. В приведенном ниже коде используется некопируемый объект Boost, как определено в noncopyable.hpp . по-прежнему позволяет...
2331 просмотров
schedule 06.03.2023

Почему resize() вызывает копирование, а не перемещение содержимого вектора при превышении емкости?
Данный класс X ниже (специальные функции-члены, отличные от явно определенной, не относятся к этому эксперименту): struct X { X() { } X(int) { } X(X const&) { std::cout << "X(X const&)" << std::endl; }...
2718 просмотров

Могу ли я сделать конструктор копирования закрытым и по-прежнему использовать реализацию по умолчанию
Я думаю, что это невозможно, но я мог бы также спросить. Могу ли я объявить закрытый конструктор копирования и по-прежнему использовать реализацию по умолчанию? Фон: у меня есть класс с очень большими векторами, и я не хочу вызывать конструктор...
1640 просмотров
schedule 19.07.2023

Конструктор копирования создает зависимую копию
Я реализовал конструктор копирования, как он описан здесь . Но все же проблема в том, что когда я обновляю route_copy , то такое же обновление применяется и к route . Итак, я не понимаю, что не так в моем коде? public class Route implements...
162 просмотров
schedule 15.02.2024