본문 바로가기

생성자2

[C++] 복사 생성자(copy constructor) 복사 생성자는 말 그대로 원본 객체가 복사될 때 호출됩니다. case 1. 객체가 매개변수의 인자로 넘어갈 때 case 2. 객체간의 대입연산이 이뤄질 때 case 3. 객체를 반환할 때 3가지 모두 객체의 복사가 일어납니다. 그럴때 복사생성자가 호출이 됩니다. 1,2,3번에 관한 예제코드입니다. 더보기 //.h .cpp class CPerson { public: CPerson();//기본 생성자 CPerson(const std::string& name, const int& age);//생성자 오버로딩 CPerson(const CPerson& person);//복사 생성자 void Show(); ~CPerson();//소멸자 private: std::string name; int* age = nullpt.. 2020. 7. 26.
[C++] 생성자(Constructor) 소멸자(Destructor) 생성자 객체가 생성되면서 멤버변수의 초기화나 멤버함수를 호출하는 등 사전에 필요한 준비작업을 하는 함수 입니다. 1. 반환 형은 없다. 2. 클래스 이름과 동일하게 선언을 한다. 3. 외부의 값으로 멤버변수를 초기화 해야할 경우 매개변수를 가진 생성자를 재정의(오버로딩) 할 수도 있다. 쉽게 말하자면 우리가 변수를 초기화 하듯이 객체가 생성됨과 동시에 객체를 초기화 시켜주는 역할을 합니다. 그런데 이전 포스팅들을 보면 생성자가 정의되어 있지 않음에도 불구하고 에러없이 잘 돌아가는데 그건 컴파일러가 기본생성자를 만들어서 호출하기 때문입니다. 만약 오버로딩된 생성자를 정의 한다면 기본생성자는 컴파일러가 만들어주지 않습니다. 따라서 기본생성자도 구현을 해줘야 하죠. //.h class CBase { publi.. 2020. 7. 19.