주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C언어와 달리 C++에서는 const와 관련해서 참으로 할 말이 많다고 이 책의 저자는 말합니다. 이번에는 const와 관련해서 보충 내용을 담는 것으로 시작합니다. 객체 상수화 다음과 같이 변수를 상수화하듯이 const int num = 10; 다음과 같이 객체도 상수화할 수 있습니다. const Simple sim(20); 그리고 이렇게 객체에 const 선언이 붙게 되면, 객체의 데이터 변경을 허용하지 않게 됩니다. 따라서 이 객체를 대상으로는 const 멤버 함수만 호출이 가능합니다. const 유무에 따른 함수 오버로딩 함..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 지금까지는 다음과 같은 방식으로 변수와 참조자를 선언 및 초기화해 왔습니다. int num = 20l int &ref = num; 그런데 C++에서는 다음의 방식으로도 선언 및 초기화가 가능합니다. int num(20); int &ref(num); 이 방법은 멤버 이니셜 라이저를 사용해 멤버 변수를 초기화하는 것과 형태가 같습니다. 위 두 가지 초기화 방식은 결과적으로 동일하며, C++에서는 두 가지 방법 모두 지원하고 있습니다. 객체의 생성에 관해서도 이는 동일하게 작용합니다. 예를 들기 위해 아래와 같이 간단한 클..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 객체 배열 객체 배열과 객체 포인터 배열은 C언어를 공부하면서 다루었던 구조체 배열, 구조체 포인터 배열과 유사합니다. 객체 배열은 다음의 형태로 선언합니다. SoSimple arr[10]; //SoSimple은 클래스명 이를 동적으로 할당하는 경우에는 다음의 형태로 선언합니다. SoSimple * ptrArr = new SoSimple[10]; 객체 배열을 선언할 때는 주의해야 할 점이 있습니다. 앞서 객체를 생성하면 반드시 하나의 생성자가 호출이 되어야 한다고 했습니다. 이는 객체 배열에 대해서도 마찬가지입니다. 단, 객체 배열..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 생성자 지금까지는 객체를 생성하고, private으로 선언한 멤버 변수를 초기화하기 위해 InitMembers 함수를 만들어 사용했습니다. 하지만 이런 과정은 조금 귀찮고 불편합니다. 그런데 '생성자'라는 것을 이용하면 객체도 생성과 동시에 초기화가 가능합니다. 생성자의 이해를 위해서 간단한 클래스 하나를 정의했습니다. class SimpleClass { private: int num; public: SimpleClass(int n) //생성자 { num = n; } int GetNum() const { return num; } }..