[C++] 생성자(Default Constructor) 사용 시 주의사항
2022. 2. 8. 23:40ㆍLanguages/C++
*<씹어먹는 C++>을 보며 공부하여 정리한 글입니다.
예시를 들기 위해 다음과 같이 몬스터(Monster) 클래스가 있다고 가정한다.
class Monster {
private:
string name;
int hp;
int attackDamage;
public:
Monster();
Monster(string name, int hp, int attackDamage) { ... }
...
};
객체 생성 방법 (동적 할당 X)
암시적 방법(Implicit)
Monster monster("달팽이", 100, 5);
Monster defMonster; // 디폴트 생성자 사용하여 객체 생성
명시적 방법(Explicit)
Monster monster = Monster("달팽이", 100, 5);
Monster defMonster = Monster(); // 디폴트 생성자 사용하여 객체 생성
디폴트 생성자 사용 시 주의사항
함수를 사용하듯 다음과 같이 객체 생성을 하면 안 된다.
// Monster Monster(); 리턴값이 Monster, 매개변수가 없는 Monster() 함수를 정의한 것으로 인식
명시적으로 디폴트 생성자 사용하는 법
C++ 11 이후부터는 컴파일러가 디폴트 생성자를 사용하도록 명시 가능
class Monster{
public:
Monster() = default;
...
};
728x90
반응형
'Languages > C++' 카테고리의 다른 글
[C++] 초기화 리스트(Initializer list), static (0) | 2022.02.09 |
---|---|
[C++] 복사 생성자(Copy constructor), 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy) (0) | 2022.02.09 |
[C++] C++ 컴파일러에서 함수를 오버로딩(Overloading)하는 과정 (0) | 2022.02.08 |
[C++] 참조자(Reference) (0) | 2022.02.08 |
[C++] 이름공간(namespace) 사용 시 주의사항 (0) | 2022.02.07 |