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

Конструктор копирования в С++ вызывается, когда объект возвращается из функции?
Я понимаю, что конструктор копирования вызывается в трех экземплярах При создании экземпляра одного объекта и его инициализации значениями из другого объекта. При передаче объекта по значению. 3. Когда объект возвращается из функции по...
48992 просмотров
schedule 27.09.2022

C++: могут ли работать полиморфные конструкторы копирования?
Рассмотреть возможность: class A { public: A( int val ) : m_ValA( val ) {} A( const A& rhs ) {} int m_ValA; }; class B : public A { public: B( int val4A, int val4B ) : A( val4A ), m_ValB( val4B ) {} B( const B& rhs ) :...
8547 просмотров
schedule 24.06.2022

С++ копировать-конструировать-конструировать-и-назначать вопрос
Вот выдержка из пункта 56 книги "C++ Gotchas": Нередко можно увидеть простую инициализацию объекта Y, написанную любым из трех разных способов, как если бы они были эквивалентны. Y a( 1066 ); Y b = Y(1066); Y c = 1066; На самом...
3713 просмотров

посторонние вызовы конструктора копирования и деструктора
[дополнение к этому вопросу ] class A { public: A() {cout<<"A Construction" <<endl;} A(A const& a){cout<<"A Copy Construction"<<endl;} ~A() {cout<<"A...
383 просмотров
schedule 31.12.2022

Почему конструктор копирования может иметь более одного параметра?
$ 12.8 / 2 - 'Конструктор, не являющийся шаблоном, для класса X является конструктором копирования, если его первый параметр имеет тип X &, const X &, volatile X & или const volatile X &, и либо нет других параметров, либо все остальные параметры...
2006 просмотров
schedule 07.04.2022

Что такое правило трех?
Что означает копирование объекта ? Что такое конструктор копирования и оператор присваивания копии ? Когда мне нужно заявить о них самому? Как я могу предотвратить копирование моих объектов?
313470 просмотров

шаблонный конструктор против шаблонного конструктора копирования
У меня есть класс с шаблонным конструктором для неявного преобразования перемещения, однако этот конструктор НЕ ДОЛЖЕН использоваться для класса (который должен быть только копируемым). Однако компилятор всегда пытается использовать шаблонный...
835 просмотров

C++: реализация конструктора копирования и оператора присваивания копии
Прочитав о конструкторах копирования и операторах присваивания копирования в C++, я попытался создать простой пример. Хотя приведенный ниже фрагмент, по-видимому, работает, я не уверен, правильно ли я реализую конструктор копирования и оператор...
38339 просмотров
schedule 19.12.2023

Шаблонные функции: конструкция по умолчанию без копирования в C++
Учитывая struct C { C() { printf("C::C()\n" ); } C(int) { printf("C::C(int)\n" ); } C( const C& ) { printf("copy-constructed\n"); } }; И шаблонная функция template< typename T > void...
255 просмотров

Копировать данные из указателя или цепочки указателей (указатель объекта, шаблоны)
Как реализован push_back из stl::vector , чтобы он мог копировать данные любого типа... может быть указателем, двойным указателем и т. д.... Я реализую класс шаблона, имеющий функцию push_back , почти аналогичную вектору. В этом методе копия...
1288 просмотров
schedule 12.09.2023

Требование CopyConstructible для элемента контейнера C++ stl
Что касается требования к элементу контейнера C++ stl, в стандарте говорится: тип элемента должен быть CopyConstructible, и существует таблица для требований CopyConstructible. Также по разным книгам (Josuttis и т. д.) сгенерированная копия должна...
2228 просмотров

удаление копии/назначения в С++ 11
В VS 2010 SP1 следующее: class Foo { public: Foo() { } Foo(Foo const&) = delete; // Line 365 Foo& operator=(Foo const&) = delete; // Line 366 }; не компилируется. Он жалуется: CPPConsole.cpp(365): ошибка C2059:...
10704 просмотров

Наследование конструктора-копирования
struct A{ virtual void what() { cout << "Base" << endl; }; }; struct B : A { virtual void what() { cout << "Sub" << endl; }; int m; B() : m(10) {}; B(const A & x) : m(50) {}; }; void main() { B b1; B b2 =...
4022 просмотров
schedule 24.05.2023

Можем ли мы вернуть объекты с удаленным/приватным конструктором копирования/перемещения по значению из функции?
В C++03 невозможно вернуть объект класса, имеющего приватный неопределенный конструктор копирования по значению: struct A { A(int x) { ... } private: A(A const&); }; A f() { return A(10); // error! return 10; // error too! } Мне...
3589 просмотров
schedule 23.04.2023

Списки инициализаторов: конструкторы копирования и операторы присваивания = избыточность?
Кажется, что списки инициализаторов - это хорошая идея для конструкторов ваших классов и, как я предполагаю, также для конструктора копирования. Для оператора присваивания нужно назначить каждый член в теле функции. Рассмотрим следующий простой...
7736 просмотров

Конструктор копирования с умным указателем
У меня есть класс с одним std::unique_ptr в качестве члена класса. Мне было интересно, как правильно определить конструктор копирования, так как я получаю следующее сообщение об ошибке компилятора: error C2248:...
7539 просмотров

функции-члены и конструктор копирования
Вы должны явно перечислить все элементы, которые вы хотите скопировать в конструкторе копирования, это означает, что вы можете настроить конструктор копирования для копирования урезанных версий вашего объекта. но как работает копирование...
502 просмотров
schedule 10.03.2023

избежание неявного копирования с отключенным конструктором копирования
Предположим, у вас есть класс NonCopyable class NonCopyable { public: NonCopyable(int n){} ~NonCopyable(){} [...] private: [members...] private: NonCopyable( const NonCopyable& ); //disabled (no definition) NonCopyable&...
356 просмотров
schedule 11.06.2023

как я могу найти, где конструктор копирования С++ ИСПОЛЬЗУЕТСЯ через ошибку компиляции?
Вкратце: есть ли способ изменить определение класса таким образом, чтобы оно не могло скомпилироваться в точке использования конструктора копирования независимо от того, где оно используется? У меня очень большой проект, и я очищал некоторые...
1768 просмотров

Должен ли конструктор копирования быть частным или общедоступным
Я пишу абстрактный класс, который будет родителем для нескольких других классов. Я думаю, что конструктор копирования должен быть закрытым, потому что вы используете абстрактный класс, и копировать нечего. Однако я не уверен на 100%. Я прав, а...
2137 просмотров
schedule 30.06.2023