C++ 프로그래밍14 Ch 12. String 클래스의 디자인 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 표준 string 클래스 - 문자열의 처리를 목적으로 정의된 클래스 - 이 클래스의 사용을 위해서는 헤더파일 을 포함해야 함 # 표준 string 클래스의 분석 1) 문자열을 인자로 전달받는 생성자의 정의 string str="I like string class"; /* 동치 */ string str("I like string class"); 2) 생성자, 소멸자, 복사 생성자 그리고 대입 연산자의 정의 - 저장하고자 하는 문자열의 길이가 일정치 않으므로, 문자열의 저장을 위한 메모리 공간을 생성자 내에서 동적 할당해야.. 2020. 8. 17. 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. 이전 1 2 3 4 다음