본문 바로가기

Programming/열혈 C++ 프로그래밍(저자 윤성우)13

Ch 16. C++의 형 변환 연산자 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # C 스타일의 형 변환 연산자는 C언어의 호환성을 위해 존재하며, 이는 너무 강력하여 잘못된 형 변환을 하여도 컴파일러가 잡아내지 못하는 경우가 있다. # C++의 형 변환 연산자 1) dynamic_cast : 상속관계에서의 안전한 형변환 - dynamic_cast(변환대상) - 유도 클래스의 포인터 및 참조형 데이터를, 기초 클래스의 포인터 및 참조형 데이터로 형 변환하는 경우만 허용한다. 2) static_cast : 상속관계에서 유도 클래스 => 기초 클래스 로의 형 변환 뿐만 아니라(dynamic_cast), 기.. 2020. 8. 18.
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.