본문 바로가기

System Programmings/C++

[C++] 얕은 복사의 착각

반응형
#include <iostream>
#include <string>
using namespace std;

class oop
{
public:
	char* str;

	oop();
	oop(const oop& pt);
	void print();
};

oop::oop(const oop& pt)
{
	str=pt.str; ///////////// <-여기서 주소값을 주기때문에 얕은 복사가 아닌가요?
}

oop::oop()
{
	str="감자";
}

void oop::print()
{
	cout << str << endl;
}

int main()
{
	oop a;
	a.print();
	oop b=a;
	b.print();

	cout << &a.str << endl << &b.str << endl;
	a.str="수건";
	cout << a.str << endl << b.str << endl;

	return 0;
}

얕은 복사가 아닌 이유!


반응형