주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 생성자 지금까지는 객체를 생성하고, private으로 선언한 멤버 변수를 초기화하기 위해 InitMembers 함수를 만들어 사용했습니다. 하지만 이런 과정은 조금 귀찮고 불편합니다. 그런데 '생성자'라는 것을 이용하면 객체도 생성과 동시에 초기화가 가능합니다. 생성자의 이해를 위해서 간단한 클래스 하나를 정의했습니다. class SimpleClass { private: int num; public: SimpleClass(int n) //생성자 { num = n; } int GetNum() const { return num; } }..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 클래스는 객체의 생성을 목적으로 디자인합니다. 그렇다면 정말 잘 디자인된 클래스가 있을 것이고, 또 그렇지 않고 안 좋게 디자인된 클래스도 있을 것입니다. 그렇다면 좋은 클래스가 되기 위한 조건은 어떤 것들이 있을까요? 좋은 클래스가 되기 위한 최소한의 조건으로 '정보은닉'과 '캡슐화'가 있습니다. 정보은닉 먼저, 정보은닉에 대해 배워보겠습니다. 클래스를 선언할 때 멤버 변수를 private로 선언하면 정보은닉이 된 것입니다. public으로 선언하면 그렇지 않습니다. 그럼 왜 private을 사용한 정보은닉이 좋은 클래스의 조건이..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 지금까지는 C언어에서 C++로 자연스럽게 이동할 수 있도록 구조체를 시작으로 클래스를 설명했습니다. 그러나 이번에는 객체지향의 관점에서 전혀 다른 방법으로 클래스를 다시 한번 설명합니다. 구조체를 확장한 것이 클래스라고 인식하는 것 자체에는 문제가 없으나, 그것이 전부라고 생각하면 문제가 있기 때문입니다. 객체(Object)라고 하는 것은 '사물, 또는 대상'입니다. 연필, 나무, 사과, 선생님, 학생 등등을 객체라고 부를 수 있습니다. C++은 객체지향 언어입니다. C언어는 절차지향적 언어입니다. 객체를 지향하는 프로그래밍이란 무..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 앞서 C++의 구조체에 대해 배웠습니다. C++의 구조체에서는 함수를 선언하고 정의할 수 있었습니다. 그리고 C++의 구조체는 지금부터 배울 '클래스'의 일종이라고 볼 수 있다는 것도 알게 되었습니다. 그렇다면 클래스란 무엇이고, 또 C++의 구조체와 클래스가 다른 점은 무엇일까요? C++의 구조체는 struct 키워드를 사용했지만, 클래스는 다음과 같이 class키워드를 사용합니다. class Car { int fuelGauge; int curSpeed; char gameID[20]; void ShowCarState(); void..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C언어로 프로그램을 구현하면 구조체가 항상 따르기 마련입니다. 구조체를 이렇게 자주 활용하는 이유는 서로 연관 있는 데이터를 묶어서 관리하기 용이하게 만들기 때문입니다. C++에도 C언어의 구조체와 같은 개념이 있습니다. C++에서는 이를 '클래스'라고 부릅니다. C언어에서는 구조체의 형식을 선언하고, 이후 구조체 변수를 선언할 때 다음과 같이 struct 키워드를 사용해서 선언했습니다. //구조체의 형식 선언 struct Player { int level; char name[20]; int HP; int MP; }; int mai..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C언어의 라이브러리에는 매우 다양한 유형의 함수들이 정의되어 있습니다. 그런데 이러한 함수들은 C++ 표준 라이브러리에도 포함되어 있습니다. 따라서 어렵지 않게 사용이 가능합니다. 다음은 C언어의 헤더 파일에 대응하는 CC의 헤더 정보를 일부만 정리한 것입니다. C라이브러리 C++라이브러리 #include #include #include #include #include #include #include #include 위의 표를 보고 대충 눈치를 챘을 수도 있습니다. C라이브러리에서 .h를 빼고 맨 앞에 c만 붙이면 C++의 라이브러..