구조체와 클래스는 데이터와 함수를 한 타입으로 묶는다. 차이는 기본 접근이다. `struct`의 멤버는 공개이고, `class`의 멤버는 비공개다. 그 밖에는 같은 메커니즘이다.
데이터 묶음
struct Pos {
int file = 0; // 0..8
int rank = 0; // 0..9
};
class Piece {
public:
int material() const { return value_; }
private:
int value_ = 0;
};모든 멤버가 공개이고 정해진 조건을 만족하면 그 타입은 집합체다. 집합체는 `Pos p{4, 8};`처럼 멤버 순서로 초기화할 수 있다. 생성자를 직접 쓰는 순간 그 초기화 형태가 바뀔 수 있다.
멤버 함수
멤버 함수는 호출된 객체를 `this`로 받는다. `material()` 안의 `value_`는 `this->value_`다. 크기만 같고 역할이 다른 값을 정수 여러 개로 흘리지 말고, `Pos`처럼 이름으로 묶으면 함수 시그니처가 의도를 말한다.
다음 편부터는 객체가 태어나고 죽는 시점, 즉 생성자와 소멸자를 다룬다.
댓글
0개아직 댓글이 없습니다.