C++ 클래스 사용시 주의

mohadang·2022년 12월 4일
0

C++

목록 보기
38/48
post-thumbnail

초기화 리스트

  • C++ 대입
class Vector {
public:
  Vector() {
    mX = 0; // Object가 만들어 진 후에
    mY = 0;
  }
private:
  int mX;
  int mY;
};
  • C++ 초기화
class Vector {
public:
  Vector() : mX(0), mY(0) // Object가 만들어 지는 시점에
  {
  }
private:
  int mX;
  int mY;
};
  • const int, AnotherClass& 같은 상수화 참조는 초기화 리스트를 이용하여 초기화 해야 한다.

기본 생성자

클래스에 생성자가 없으면 컴파일러가 기본 생성자를 자동적으로 만들어 줌.
객체가 객체를 가지고 있을 때???

  • Java
    • 포함된 객체에 걍 NULL로 초기화 함
  • C++
    • '포함된 객체의 기본 생성자를 호출해 초기화 해줌', null이 아님.

소멸자

소멸자로 class에서 할당한 메모리 잘 소멸 시키자.

const를 적극적으로 활용하자

const 변수

변수가 바뀌면 안될 경우 const로 무조건 사용
const int LINE_SIZE = 20;

const 멤버 함수

멤버 변수가 변하는 것을 방지
비 멤버 함수는 const 사용 못함

int GetX() const;

기본적으로는 모든 멤버 함수를 Const로 만드는 것이 좋으며 멤버 변수를 수정할 때만 Const를 제거 하는 것이 좋다.

  • 일반 참조 변수를 const 참조 변수로 반환하거나 받을 수 있다.
const Vector& Func(Vector& rhs) {
  return rhs
}
void Func(const Vector& rhs);
...
Vector vec;
Func(vec);

그러나 const 참조 변수를 일반 참조 변수로 반환 하거나 받을 수는 없다.

void Func(int& data) { // error
  std::cout << data << std::endl;
}
int main() {
  const int data = 10;
  Func(data);
  return 0;
}
profile
mohadang

0개의 댓글