목록𝐏𝐑𝐎𝐆𝐑𝐀𝐌𝐌𝐈𝐍𝐆 (80)
도순씨의 코딩일지
🌼 protected 선언 C++의 접근제어 지시자에는 private, protected, public 이렇게 세 가지가 있습니다. 이들이 허용하는 범위는 다음과 같습니다. private < protected < public public이 허용하는 범위가 가장 넓고, private가 허용하는 접근 범위가 가장 좁습니다. protected는 private와 매우 유사하지만 차이점이 있습니다. protected의 이해를 위해서 다음 클래스를 살펴봅시다. 1 2 3 4 5 6 7 8 9 10 11 class Base{ private: int num1; protected: int num2; public: int num3; void ShowData(){ cout
🌼 상속의 개념 상속은 기존에 정의해 놓은 클래스의 재활용을 목적으로 합니다. 먼저 예제를 하나 살펴봅시다. ⭐️ EmployeeManger1.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 #include #include using namespace std; class PermanentWorker{ private: char name[100]; int salary; public: PermanentWorker(char * name..
🌼 const 객체 1 2 3 const int num = 10; const SoSimple sim(20); cs 변수를 상수화하듯 객체도 상수화 할 수 있습니다. 객체에 const 선언이 붙게 되면, 이 객체를 대상으로는 const 멤버 함수만 호출이 가능합니다. const 선언이 데이터 변경을 허용하지 않기 때문입니다. 예제를 통해서 const 객체의 특성을 확인해 봅시다. ⭐️ ConstObject.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include using namespace std; class SoSimple{ private: int num; public: SoSimple(int n) : num(n) {} SoSimp..
🌼 복사 생성자의 개념 C부터 시작하여 우리는 다음과 같은 방법으로 변수와 참조자를 선언하고 초기화했습니다. 1 2 int num(20); int &ref = num; cs 하지만 C++에서는 이러한 방식으로도 선언과 초기화가 가능합니다. 1 2 int num(20) int &ref(num) cs 두 초기화 방식은 결과적으로 동일합니다. 다음 코드를 살펴봅시다. 1 2 3 4 5 6 7 8 9 10 11 class SoSimple{ private: int num1; int num2; public: SoSimple(int n1, int n2): num1(n1), num2(n2){} void ShowSimleData(){ cout
C++의 구조체 배열은 C언어와 유사한 면이 많습니다. 🌼 객체 배열 객체 기반 배열은 다음과 같은 형태로 선언합니다. 1 SoSimple arr[10]; cs 동적으로 할당하는 경우에는 다음과 같은 형태로 선언합니다. 1 SoSimple * ptrArr = new SoSimple[10] cs 이러한 형태를 선언하면 열 개의 SoSimple 객체가 모여 배열을 구성합니다. 배열 선언을 하는 경우에도 생성자는 호출이 됩니다. 단, 배열의 선언 과정에서는 호출 생성자를 별도로 명시하지 못합니다. 따라서 원하는 값으로 초기화하고 싶다면 초기화의 과정을 별도로 거쳐야 합니다. 다음 예제를 살펴보도록 합시다. ⭐️ ObjArr.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..
매개변수들을 초기하기 위해서 함수를 정의해주었는데, 매우 번거로운 일이었습니다. 이러한 불편함을 막기 위해서 생성자가 만들어졌습니다. 생성자를 이용하여 객체도 생성과 동시에 초기화할 수 있습니다. 🌼 생성자의 이해 생성자의 이해를 위해서 간단한 클래스 하나를 살펴보도록 합시다. 1 2 3 4 5 6 7 8 9 10 11 class SimpleClass{ private: int num; public: SimpleClass(int n){ // 생성자 num = n; } int GetNum() const{ return num; } }; Colored by Color Scripter cs 위 클래스 정의에서 SimpleClass라는 함수를 확인할 수 있습니다. 이 함수는 클래스와 이름이 동일하고 반환형이 선언되..
캡슐화와 정보은닉은 구분하기 쉽지 않습니다. 먼저 캡슐화가 왜 중요한지 코드를 살펴보며 알아보도록 하겠습니다. ⭐️ Encaps1.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include using namespace std; class SinivelCap{ // 콧물 처치용 캡슐 public: void Take() const {cout
정보은닉은 말 그대로 정보를 숨기는 것을 의미합니다. 이렇게 말하면 조금 와닿지 않는 감이 있습니다. 그래서 먼저 예제를 살펴보도록 하겠습니다. ⭐️ 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include using namespace std; class Point{ public: int x; int y; }; class Rectangle{ public: Point upLeft; Point lowRight; public: void ShowRecInfo(){ cout