본문 바로가기

CHAPTER04 - 클래스의 완성-2 1. 이니셜라이저를 통한 참조자인 멤버변수 초기화 const 변수와 마찬가지로 '참조자'도 선언과 동시에 초기화가 이루어져야 합니다. 따라서 아래와 같이 이니셜라이저를 통해 초기화가 가능합니다. class Second { private: int # public: Second( int &n) : num(n) {} }; 2. 디폴트 생성자(Default Constructor) 객체가 되기 위해서는 반드시 하나의 생성자가 호출되어야 한다. 그리고 이러한 기준에 예외를 두지 않기 위해 생성자를 정의하지 않는 클래스에는 C++ 컴파일러에 의해서 디폴트 생성자라는 것이 자동으로 삽입된다. 즉, 생성자를 선언하지 않으면 다음과 같은 정의와 완전히 동의하다. class Second { private: int &.. 더보기
CHAPTER04 - 클래스의 완성-1 1. 정보은닉(Informaiton Hiding)의 이해 멤버범수를 'private'으로 선언하고, 해당 변수에 접근하는 함수를 별도로 정의해서 안전한 형태로 멤버변수의 접근을 유도하는 것이다. 이는 좋은 클래스가 되기 위한 기본조건이 된다. (1) 엑세스 함수(Access Function) 외부에서 'private'으로 선언된 멤버변수에 접근하기 위한 목적으로 정의되는 함수들이다. 보통 정수형 데이터 XXX 변수에 대해서 아래와 같이 선언한다. int getXXX( void) const; void setXXX( const int); (2) 상수형 함수(Const) 위의 액세스 함수들에 'const' 선언이 추가되어 있다. 이는 "이 함수 내에서 멤버변수의 값을 변경하지 않겠다"라는 의미이다. 따라서 c.. 더보기
CHAPTER03 - 클래스의 기본 1. C++에서의 구조체 구조체는 연관 있는 데이터를 묶을 수 있는 문법적 장치이다. (1) C++에서의 구조체 선언 C에서는 구조체를 나타내는 'struct'를 명시해 주어야 한다. 이것을 생략하려면 'typedef' 선언을 추가해야 한다. 그러나 C++에서는 별도의 선언없이도 구조체 변수를 선언할 수 있다. (2) 구조체 안에 함수 선언 C++에서는 구조체 안에 함수를 선언할 수 있다. 만약 그렇게 되면, 구조체의 멤버 변수를 별다른 연산 없이 참조할 수 있게 된다. struct Stu { int stu_num; char stu_name[10]; void print_information( void) { cout 더보기