class Position
{
public:
int x,y;
Position(int ax, int ay) { x=ax; y=ay; }
};
class Some
{
Position Pos;
};
만약 Some의 Pos를 Some의 생성자에서 초기화하려면 어떻게 해야할까?
Some(int x, int y) { Pos(x,y); }
위 코드는 오류이다. 객체의 생성자는 객체가 생성될 때 자동으로 호출되는 것으로
Pos의 생성자를 임의로 호출할 수 없다.
Some(int x, int y) { Position Pos(x,y); }
위 코드도 성립하지 않는다. 위 코드의 pos는 Some클래스가 가지고 있는 Pos가 아닌
Some 생성자 내의 지역 객체이기 때문이다.
Some(int x, int y) : Pos(x,y) { }
그렇기 때문에 초기화 리스트를 이용한다.
Some생성자의 매개변수인 x,y가 Pos의 x,y로 저장된다.
'C++' 카테고리의 다른 글
| [C++] this는 포인터다 (0) | 2021.12.21 |
|---|---|
| [C++] 포인터와 레퍼런스의 차이 (0) | 2021.12.21 |
| [C++] 메모리 누수 체크 (0) | 2021.12.20 |
| [C++] 후위연산자 (0) | 2021.12.19 |
| [C++] vector vs list (0) | 2021.12.19 |