[열혈 C++] Chapter 4
정보은닉
멤버변수를 private으로 선언하고, 해당 변수에 접근하는 함수를 별도로 정의해서, 안전한 형태로 멤버변수의 접근을 유도하는 것
캡슐화
- 하나의 목적 하에 둘 이상의 기능이 모여 목적을 달성
- 정보은닉이 기본적으로 포함됨
const 함수
- 해당 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다 선언
- const 함수 내에서는 const가 아닌 함수의 호출이 제한됨
ex) void ShowRecInfo() const;
생성자
- 객체 생성시 딱 한번 호출
- ex) SimpleClass sc(20); SimpleClass *ptr = new SimpleClass(20);
- 전달 값 없을 때
SimpleClass sc1(); (X)
SimpleClass sc1; (O)
멤버 이니셜라이저(Member Initializer)
- 선언과 동시에 초기화가 이루어진다 -> const, 참조자 멤버변수 초기화 가능
class SimpleClass { private: int &ref; const int num; public: SimpleClass(int &r, const int n) : ref(r), num(n) { } }
디폴트 생성자(Default Constructor)
- 생성자를 정의하지 않는 클래스에는 C++ 컴파일러에 의해서 디폴트 생성자가 자동으로 삽입된다
SimpleClass(){} // 디폴트 생성자
- 생성자가 정의 된 경우, 디폴트 생성자는 삽입되지 않는다
-> 필요시 void형 생성자를 별도로 정의해야 함
소멸자
- 형태 : 반환형 정의(x), void형으로 선언
- 디폴트 소멸자(자동삽입)
~SimpleClass() { }
객체 배열
- 호출할 생성자를 명시하지 못한다(인자를 전달하지 못한다)
SimpleClass arr1[10]; SimpleClass *arr2 = new SimpleClass[10];
- 객체 포인터 배열을 이용하면 인자 전달 가능
SimpleClass *parr[3]; for(int i=0; i<2; i++); parr[i] = new SimpleClass( ... );
this
this는 객체 자기자신의 주소 값을 가지는 포인터
// 예시1 class SimpleClass { private: int num; public: void SimpleFunc(int num) { this->num = num } // SimpleClass(int num) : num(num) }
Author And Source
이 문제에 관하여([열혈 C++] Chapter 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@csct3456/cpp4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)