복사 생성자 호출 시점

2019. 8. 24. 20:01PL/C++

1. 객체 선언 때, 객체 복사를 할 때

2. 참조 매개가 아닌 일반 복사일 때

3. 참조 반환이 아닌 일반 객체 반환일 때

 

#include <iostream>

using namespace std;

class SoSimple {
private:
	int num;

public:
	SoSimple(int n) : num(n) {

	}
	SoSimple(const SoSimple &copy) : num(copy.num) {
		cout << "복사 생성자 호출\n";
	}
	void ShowData() {
		cout << "num: " << num << '\n';
	}
};

SoSimple SimpleFuncObj(SoSimple obj) {
	return obj;
}

int main(void) {
	SoSimple s1(3);
	SoSimple s2(s1);
	const SoSimple &ref = SimpleFuncObj(s2);

	return 0;
}

 

총 3번의 복사 생성자 호출이 일어난다

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

c++ 클래스 상속  (0) 2019.08.25
const 키워드 오버로딩  (0) 2019.08.24
c++에서의 struct  (0) 2019.08.24
연산자 오버로딩과 관련한 카페 질문  (0) 2019.08.23
클래스 템플릿을 헤더파일에 작성해야 하는 이유  (0) 2019.08.23