본문 바로가기

분류 전체보기70

Ch 15. 예외처리(Exception Handling) 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # C++의 예외란? - 프로그램의 "실행(런타임) 도중" 발생하는 문제상황 - 컴파일시 발생하는 문법적인 에러는 범주에서 제외 - 즉, 문법적인 오류가 아닌 프로그램 논리에 맞지 않는 상황 - 예외처리를 위한 코드와 프로그램의 흐름을 구성하는 코드를 쉽게 구분하기 위해 C++의 예외처리 메커니즘을 이용한다.(가독성과 유지보수성 높이기) 1) 예외의 발생위치 2) 예외의 발견위치 3) 예외의 처리위치 => 모두 위치가 다를 수 있다. - try : 예외발생에 대한 검사의 범위 지정 - catch : try 블록에서 발생한 .. 2020. 8. 18.
Ch 13-14. 템플릿(Template) 1, 2 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 템플릿 - 컴파일 타임에 클라이언트가 여러 타입의 함수나 클래스를 쉽게 생성하게 함 - 서버 코드 작성자(프로그래머)는 좀 더 제네릭 프로그램 코드를 만들고, 클라이언트가 구체적인 코드를 작성함으로써 제네릭한 프로그래밍이 가능해짐 - T는 템플릿 매개변수이며 클라이언트에서 결정함 => 템플릿의 인스턴스를 만들어냄 - 템플릿 선언에는 다양한 자료형(기본 자료형 포함) 선언 가능 + 둘 이상의 자료형에 대해도 가능 - 템플릿의 매개변수로 템플릿 매개변수 T 뿐만 아니라, 정수 등의 기본 자료형도 가능 e.g. templat.. 2020. 8. 18.
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.