C++에서 복사생성자를 사용할때 주의 사항
* 묵시적 변환
만약,
class example{
private:
public:
example(){}
};
void main()
{
example a;
example b=a;
}
라는 코드가 있을 때
example b=a;
라는 코드는
묵시적으로 example b(a);
라는 코드로 묵시적으로 변환.
(참고 이를 막기 위해 explicit라는 키워드가 존재. 묵시적 변환을 막으려면, 복사 생성자 함수 앞에 explicit를 넣어주면, 묵시적으로 변환하지 않음.)
=> 형식
class example{
private:
public:
example(){}
example(const example &a){}
};
요롷게 선언을 해주면 됨.
함수 오버로딩에 따라 클래스를 복사할경우, 클래스 하나를 다시 생성해줌.
'Programming > C/C++' 카테고리의 다른 글
무식하게 소수 판별 하는 방법 (0) | 2013.07.29 |
---|