Почему не сработал конструктор копирования?
#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;
Попробуйте так.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей