본문 바로가기

PROGRAMMING LANGUAGE/C++

복사 생성자

#include <iostream>
using namespace std;

class Person
{
private:
	char* name;
public:
	Person(const char* str)   
	{
		name = new char[strlen(str) + 1];
		strcpy_s(name, strlen(str) + 1, str);
	}
	Person(const Person& per)
	{
		name = new char[strlen(per.name) + 1];
		strcpy_s(name, strlen(per.name) + 1, per.name);
	}
	void Show() const     
	{       
		std::cout << name << std::endl;          
	}
	~Person()
	{
		delete name;  
	}
};

int main(void)
{
	Person* per = new Person("Name"); per->Show();
	Person* per1 = new Person(*per);
	delete per;    
	per1->Show();
	return 0;    
}

'PROGRAMMING LANGUAGE > C++' 카테고리의 다른 글

생성자 종류  (0) 2021.11.18
explicit - 명시적형변환(자동형변환을 금지한다)  (0) 2021.11.18
프렌드 함수  (0) 2021.11.17
Buyer Seller 함수 구현  (0) 2021.11.12
함수의 Default 매개변수  (0) 2021.11.11