ݺߣ

ݺߣShare a Scribd company logo
C++ !
http://blog.naver.com/ruvendix
기본 생성자
사용자가 생성자를 정의하지 않으면 기본 생성자로 설정!
기본 생성자는 아무것도 안함!
class CTest
{
// 기본 생성자
CTest(void)
{
}
};
http://blog.naver.com/ruvendix
생성자 오버로딩
사용자는 생성자를 오버로딩해서 사용할 수 있다!
주로 객체를 초기화는 용도로 오버로딩함!
class CTest
{
CTest(void)
{
cout << “오버로딩”;
}
CTest(int iAge, const char *szName)
{
// 초기화 작업
}
};
http://blog.naver.com/ruvendix
변환 생성자
매개변수가 하나인 생성자를 변환 생성자라 함!
함수의 인자로 넘길 때 변환될 수 있으므로 변환 생성자라 함!
class CTest
{
CTest(int iAge)
{
// 초기화 작업
}
};
void Func(const Ctest &rCtest) { }
Func(5); // 이게 작동함!
http://blog.naver.com/ruvendix
explicit 예약어
변환 생성자에 제한을 걸려면 explicit 예약어를 사용해야 함!
explicit 예약어는 컴파일러가 묵시적 형변환을 하지 못하도록 막음!
class CTest
{
explicit CTest(int iAge)
{
// 초기화 작업
}
};
void Func(const Ctest &rCtest) { }
Func(5); // 이제는 작동 불가!
http://blog.naver.com/ruvendix
복사 생성자
복사 생성자는 함수의 인자로 넘길 때 많이 호출됨!
기본 복사 생성자는 얕은 복사를 한다는 단점이 있음!
class CTest
{
CTest(const Ctest &rCTest)
{
// 초기화 작업
}
};
CTest Test1;
CTest Test2(Test1); // 복사 생성자 호출!
복사 생성자는 기본 복사 생성자가 존재함!
http://blog.naver.com/ruvendix

More Related Content

여러 생성자