목록𝐏𝐑𝐎𝐆𝐑𝐀𝐌𝐌𝐈𝐍𝐆/𝐂++ (32)
도순씨의 코딩일지
🌼 디폴트 대입 연산자 대입 연산자의 대표적인 특성은 다음과 같습니다. 💡 정의하지 않으면 디폴트 대입 연산자가 삽입된다. 💡 디폴트 대입 연산자는 멤버 대 멤버의 복사(얕은 복사)를 진행한다. 💡 정의하지 않으면 디폴트 대입 연산자가 삽입된다. pos2 = pos1은 멤버함수방식의 오버로딩을 기준으로 다음의 형태로 해석됨을 알 수 있습니다. 1 pos2.operator = (pos1); cs ⭐️ FirstOperationOverloading.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 #include using..
🌼 operator+ ❓ ⭐️FirstOperationOverloading.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 #include using namespace std; class Point{ private: int xpos, ypos; public: Point(int x = 0 , int y = 0) : xpos(x), ypos(y) {} void ShowPosition() const{ cout
먼저 단순한 코드를 하나 살펴보도록 하겠습니다. 🌼 멤버함수의 위치 ⭐️RealObjUnder1.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; class Data{ private: int data; public: Data(int num) : data(num) {} void ShowData() { cout
🌼 객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수 C++에서는 클래스를 기반으로도 포인터 변수를 선언할 수 있습니다. Person 객체의 주소 값 저장을 위해서 다음과 같은 포인터 변수를 선언할 수 있습니다. 1 2 Person * ptr; // 포인터 변수 선언 ptr = new Person() // 포인터 변수의 객체 참조 cs Person형 포인터는 Person 객체 뿐만 아니라, Person을 상속하는 유도 클래스의 객체도 가리킬 수 있습니다. 다음 코드를 살펴봅시다. 1 2 3 class Student : public Person{ .... }; cs class Student가 Person 클래스를 상속하고 있습니다. 1 Person * ptr = new Student(); cs ..
🌼 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