Почему не сработал конструктор копирования?
#include <iostream>
using namespace std;
class A
{
public:
A() {cerr << "Constructor" << endl;};
A(const A &obj) {cerr << "Copy" << endl;};
~A() {cerr << "Destructor" << endl;};
};
int main (void)
{
class A a, b;
a = b;
return 0;
}
Constructor
Constructor
Destructor
Destructor
В данном коде конструктор копирования нигде не вызывается. a = b;
вызывает сгенерированный компилятором operator =(A const &)
. Конструтор копирования следует вызывать вот так:
A a{};
A b{a};
Потому что у вас присваивание, а не копирование.
A b;
A a = b;
Попробуйте так.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно передавать функции или конструктору список чисел определенного типа, например, int, uint8_t или uint32_tКак это сделать просто, производительно...
Передо мной стоит следующая задача: написать программный код в OC Windows в среде Borland C++ Builder, соотвественно, на языке С++, который позволит считывать...
Пользователи StackOverflow! Нужны дельные советы по этой довольно актуальной темеПредставьте всем знакомую ситуацию: есть диплом о высшем образовании...