[문과 코린이의 IT 기록장] C,C++ - 상속 1 (상속 공부 접근 방법, 문제의 제시, 상속의 문법적인 이해, 유도 클래스 객체 생성과정, 유도 클래스 객체의 소멸과정)
[문과 코린이의 IT 기록장] C,C++ - 상속 1 (상속 공부 접근 방법, 문제의 제시, 상속의 문법적인 이해, 유도 클래스 객체 생성과정, 유도 클래스 객체의 소멸과정) [ 상속 공부 접근 방법 ] a. 문제의 제시 : 상속과 더불어 다형성의 개념을 적용해야만 해결 가능한 문제를 먼저 제시한다,. b. 기본개념 소개 : 상속의 문법적 요소를 하나씩 소개해 나간다. c. 문제의 해결 : 처음 제시한 문제를, 상속을 적용해 해결해 나간다. ex ) OrangeMedia라는 회사가 운영하는 '급여관리 시스템' - 이 회사에서는 기존에는 정규직(ermanent) 하나의 근무형태만 존재했음. #include using namespace std; class PermanentWorker { // 정규직 클래스 ..
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 7 : 포인터 연산자 오버로딩(포인터 연산자 오버로딩, 스마트 포인터 (Smart Pointer), ( )연산자의 오버로딩과 펑터(Functor), 임시객체로의 자동 형 ..
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 7 : 포인터 연산자 오버로딩 (포인터 연산자 오버로딩, 스마트 포인터 (Smart Pointer), ( )연산자의 오버로딩과 펑터(Functor), 임시객체로의 자동 형 변환과 변환 연산자(Conversion Operator)) 1. 포인터 연산자 오버로딩 - 포인터를 기반으로 하는 연산자 모두를, 포인터 연산자라고 한다. - 그 중에서도 대표적인 포인터 연산자는 다음과 같다. a. -> : 포인터가 가리키는 객체의 맴버에 접근 b. * : 포인터가 가리키는 객체에 접근 - 이 두 연산자의 오버로딩은, 일반적인 연산자의 오버로딩과 크게 차이가 없다. ex ) #include using namespace std; class Number { pr..
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 5 : 배열의 인덱스 연산자 오버로딩 (배열 클래스, const 함수를 이용한 오버로딩의 활용, 객체의 저장을 위한, 배열 클래스의 정의)
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 4 : 배열의 인덱스 연산자 오버로딩 (배열 클래스, const 함수를 이용한 오버로딩의 활용, 객체의 저장을 위한, 배열 클래스의 정의) - 이번 포스팅에서는, 배열요소에 접근할 때 사용하는, [ ] 연산자를 오버로딩 하고자 한다. 1. 배열 클래스 - C, C++의 기본 배열은 경계검사를 하지 않는다는 단점을 가지고 있다. 따라서 컴파일, 실행 모두 무리없이 진행되는, 엉뚱한 코드가 만들어질 수 있다. int main(){ int arr[3] = {1,2,3}; cout
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 3 : 대입연산자 (대입연산자, 디폴트 대입 연산자의 문제점, 상속 구조에서의 대입 연산자 호출, 이니셜라이저)
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 3 : 대입연산자 (대입연산자, 디폴트 대입 연산자의 문제점, 상속 구조에서의 대입 연산자 호출, 이니셜라이저) 1. 대입연산자 1) 대입 연산자 오버로딩은, 복사 생성자와 매우 유사하다. [ 디폴트 대입 연산자 ] - 정의하지 않으면 디폴트 대입 연산자가 삽입된다. - 디폴트 대입 연산자는 맴버 대 맴버의 복사(얕은 복사)를 진행한다. - 연산자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야 한다. 2) 복사생성자 vs 대입연산자 : 호출되는 시점에서 차이가 존재한다. a. 복사생성자 호출 상황 int main(){ Point pos1(5,7); Point pos2 = pos1; // 새로 생성하는 객체 pos2의 ..