Конструктор копирования

241
08 мая 2018, 00:12

Почему не сработал конструктор копирования?

#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
Answer 1

В данном коде конструктор копирования нигде не вызывается. a = b; вызывает сгенерированный компилятором operator =(A const &). Конструтор копирования следует вызывать вот так:

A a{};
A b{a};
Answer 2

Потому что у вас присваивание, а не копирование.

A b;
A a = b;

Попробуйте так.

READ ALSO
Инициализация класса

Инициализация класса

В чем разница между способами инициализации?

189
C++ передача списка чисел

C++ передача списка чисел

Нужно передавать функции или конструктору список чисел определенного типа, например, int, uint8_t или uint32_tКак это сделать просто, производительно...

201
Чтение данных с HID устройства

Чтение данных с HID устройства

Передо мной стоит следующая задача: написать программный код в OC Windows в среде Borland C++ Builder, соотвественно, на языке С++, который позволит считывать...

152
Как выбраться с программистского дна?

Как выбраться с программистского дна?

Пользователи StackOverflow! Нужны дельные советы по этой довольно актуальной темеПредставьте всем знакомую ситуацию: есть диплом о высшем образовании...

155