Я понял концепцию конструкторов копирования, которые мы делаем указателем, имеет разные местоположения и указывает на одно и то же значение.C++ special member copy constructor
Но мне интересно, почему, когда я пытаюсь получить доступ к значению для переменной объекта, его значение отличается от значения другого.
Например:
#include <iostream.h>
using namespace std;
class myclass {
public:
int a, b;
string c;
};
int main()
{
myclass foo, bar;
foo = bar;
bar.a = 20;
cout << foo.a << endl; // why it is not printing 20 here, as implicit copy
// constructor copy all members from object bar
// to object foo?
}
Потому что вы скопировали перед установкой этого члена. – Till
* «Я понял концепцию конструкторов копирования» *, Нет, вы не сделали :( –
Вы получите только указатели, указывающие на один и тот же объект, когда у вас есть указатели. Здесь нет указателей, всего два отдельных объекта. Изменение одного объекта не изменит другого. –