복사되지 않을까? 에 대한 신경 쓰지 않아도 된다.
컴파일러가 알아서 복제 생략을 발생한다.
전문가 c++ p. 145
#include <iostream>
using namespace std;
#include <numeric>
#include <array>
class Object
{
public :
Object(int n)
: p{ new int(n) }
{
cout << "constru" << endl;
}
Object(const Object& _obj)
: p(new int(*_obj.p))
{
cout << "copy constr" << endl;
}
const void Print() const { cout << *p << " " << p << endl; }
private :
int* p;
};
Object foo(int _data)
{
Object obj(_data);
cout << &obj << endl;
obj.Print();
return obj;
//return Object(_data);
}
int main()
{
Object ob1 = foo(4);
cout << "out! " << endl;
cout << &ob1 << endl;
ob1.Print();
//Object ob2 = ob1;
return 0;
}