복사 생성자 호출 시점
2019. 8. 24. 20:01ㆍPL/C++
1. 객체 선언 때, 객체 복사를 할 때
2. 참조 매개가 아닌 일반 복사일 때
3. 참조 반환이 아닌 일반 객체 반환일 때
#include <iostream>
using namespace std;
class SoSimple {
private:
int num;
public:
SoSimple(int n) : num(n) {
}
SoSimple(const SoSimple ©) : 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 |