Programming/열혈 C++ 프로그래밍(저자 윤성우)13 Ch 11. 연산자 오버로딩 2 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 대입연산자 오버로딩 - 객체간 대입연산의 비밀 - 대입연산자는 그 성격이 복사생성자와 매우 유사하다. # 복사생성자 1) 정의하지 않으면 디폴트 복사생성자가 삽입됨 2) 디폴트 복사 생성자는 멤버대멤버 복사(얕은 복사)를 진행 3) 생성자 내에서 동적할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야함 # 대입연산자 1) 정의하지 않으면 디폴트 대입생성자가 삽입됨 2) 디폴트 대입 생성자는 멤버대멤버 복사(얕은 복사)를 진행 3) 생성자 내에서 동적할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야함 .. 2020. 8. 17. Ch 10. 연산자 오버로딩 1 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 연산자 오버로딩 - 객체도 완벽히 기본 자료형 데이터처럼 취급하게 할 수 있음 - 'operator' 키워드 + '연산자' => 연산자를 이용한 함수의 호출도 허용 - 연산자 오버로딩한 함수도 const 선언이 가능 # 연산자 오버로딩 방법 1) 멤버함수에 의한 방법 class Point { private: int xpos,ypos; public: ... Point operator+(const Point &ref) { Point pos(xpos+ref.xpos,ypos+ref.ypos); return pos; } }; .. 2020. 8. 17. Ch 07-09. 상속의 이해, 상속의 다형성, 가상(Virtual)의 원리와 다중상속 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 상속은 기존에 정의해 놓은 클래스의 재활용을 목적으로만 하는 것이 아니다. # 클래스의 유형 1) 데이터적 성격(entity 클래스) 2) 기능적 성격(컨트롤클래스, 핸들러클래스) # 컨트롤클래스(핸들러클래스) 1) 기능제공의 핵심이기에 모든 객체지향 프로그램에서 필수적임 2) 프로그램 전체의 기능을 담당 3) 컨트롤클래스만 봐도 프로그램 전체기능과 흐름 파악이 가능 # Entity 클래스 1) 데이터적 성격이 강함. 따라서 파일 및 데이터베이스에 저장된 데이터를 소유 2) 프로그램의 기능을 파악하는데에는 도움을 주지 .. 2020. 8. 17. Ch 06. friend와 static 그리고 const 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 변수를 상수화하듯, 객체도 상수화가 가능하다. 이는 객체의 데이터 변경을 허용하지 않겠다는 의미이므로 해당 객체는 const 함수만 호출이 가능하다. # 멤버변수의 값을 수정하지 않는 멤버함수의 경우 const 선언을 하는 습관을 들이자. # const 선언 또한 함수 오버로딩 조건에 해당된다. 1) 매개변수의 수 2) 매개변수의 자료형 3) const 선언 유무 * 반환형은 해당되지 않으니 주의하자. # const 참조자로 객체를 참조하는 경우에도, 이 참조자로 함수를 호출시 const 함수만 호출이 가능하다. # 클.. 2020. 8. 17. 이전 1 2 3 4 다음