언어/C++

3. 클래스

에린_1 2023. 1. 16. 21:27
728x90
  • 객체 지향 프로그래밍
  • 클래스 기본 문법
    • 생성자 / 소멸자
      • 생성자는 다중정의 가능
      • 소멸자는 불가능
      • 만들어놓지 않더라도 컴파일러가 디폴트 생성자, 소멸자를 만들어 놓음
    • 접근 제어 지시자
      • 클래스 - 기본 Private
      • 구조체 - 기본 Public
    • 전역변수로 선언한 클래스의 생성자는 main보다 먼저 호출
  • 동적 객체의 생성과 소멸
    • new[]로 생성한 것은 delete[]로 삭제해야 한다 ( 안할시 메모리 릭 )
  • 참조 형식 멤버 초기화
    • 참조자는 선언과 동시에 초기화 해야한다. 그래서 생성자 초기화 목록을 써야한다.
  • 생성자 다중 정의
    • C++11 부터 생성자 위임 가능
    • 생성자 위임 - 생성자 초기화 목록에서 다른 생성자 추가로 호출 같은일을 하는 코드가 여러번 있을 필요 X
  • 명시적 디폴트 생성자
    • 선언과 정의를 한번에 끝낸다.
  • 메서드
    • 클래스의 멤버 함수
  • this 포인터
    • 소속을 정확하게 명시
  • 상수형 메서드
    • 읽기는 O, 쓰기는 X
    • 함수 원형 뒤에 const
    • 특징 : 상수화 방법 this포인터를 상수형 포인터로 변경
    • 상수화 된 메서드가 아니면, 멤버 함수도 호출 불가
    • mutable로 선언한 변수는 상수형 메서드에서 쓰기 가능
    • const_cast<>로 억지로 쓸 수 있게 형 변환 가능
  • delete 예약어
    • void func(double d) = delete; - 실수로 double형 인자가 넘어오는 경우 차단
  • 정적 멤버
    • 사실상 전역변수, 함수와 같다.
    • 인스턴스 선언 없이 직접 호출 가능
    • 선언과 젖ㅇ의 분리
728x90

'언어 > C++' 카테고리의 다른 글

6. 클래스의 완성  (0) 2023.01.19
5. 연산자 다중정의  (0) 2023.01.17
4. 복사 생성자 & 임시객체  (0) 2023.01.17
2. C++ 함수와 네임스페이스  (0) 2023.01.16
1. C와 C++ 차이  (2) 2023.01.16