목록프로그래밍/c++ 명품프로그래밍 (32)
ITGenerations
실행 오류와 오류처리*컴파일이 잘 된 프로그램도 예상치 못한 입력 값이나 논리적 실수로 실행 중에 오류가 발생할 수 있으며, 이 때 프로그램이 비정상 종료된다. *실행 중에 발생하는 오류로 프로그램이 비정상 종료되는 것을 막기 위해, 실행 오류의 발생을 탐지하고 이에 대처하는 코드가 작성되어야 한다. 예외와 예외처리*예외(exception)란 예상치 못한 입력이나 상황 발생으로 실행 오류를 유발할 수 있는 사건을 말하며, 예외 처리(exception handling)란 예외 발생 시 대처하는 코드이다. *c++에서는 try-throw-catch 구조로 예외를 처리한다. *c++에서의 예외처리는 운영체제가 알려주는 예외를 c++ 응용프로그램에서 처리하는 것이 아니다.사용자가 작성한 프로그램 내에서 사용자 ..
텍스트 파일과 바이너리 파일*글자 혹은 문자로만 구성되는 파일이 텍스트 파일이며, 문자와 그림, 표, 색, 그래픽 등을 저장하기 위해 문자가 아닌 바이너리 바이트가 저장된 파일이 바이너리 파일이다.* 키를 입력하면 텍스트 파일에 '\r' '\n'의 두 문자 코드가 기록된다. 파일 입출력 개요*c++ 표준은 파일 읽기를 위해 ifstream, 쓰기를 위해 ofstream, 읽기와 쓰기를 동시에 처리하는 fstream 클래스를 제공하며, 이들은 각각 istream, ostream, iostream을 상속받기 때문에 이들이 가진 입출력 함수를 모두 사용할 수 있다.*파일 입출력 스트림 클래스는 파일을 프로그램과 연결한다.*텍스트 I/O는 문자 단위로 읽고 쓰는 모드이며, 바이너리 I/O는 바이트 단위로 읽고 ..
C++ 입출력의 기초*입출력 스트림은 연속적인 데이터의 흐름 혹은 데이터를 전송하는 소프트웨어 모듈이다.*입력 스트림은 입력 장치와 프로그램을 연결하며 입력 장치로부터 데이터를 입력받아 프로그램에순차적으로 전달한다. 출력 스트림은 프로그램과 출력 장치를 연결하며 프로그램에서 출력한 데이터가순차적으로 출력 장치로 보내지도록 한다.*C++스트림은 버퍼가 있어 모든 데이터는 버퍼를 거쳐 입출력된다.*C++표준 입출력 시스템은 스트림 입출력만 지원한다.*구 표준 C++ 입출력 라이브러리의 주요한 클래스는 ios, istream, ostream, iostream 등이 있었으며이들은 문자가 한 바이트로만 구성되는 언어만 지원하였다.*한 문자가 2바이트 이상으로 구서오디는 다국어의 입출력을 위해 2003년 새 C++..
조작자 I/O 용도 endl o 스트림 버퍼를 모두 출력하고 다음 줄로 넘어감 oct o 정수 필드를 8진수 기반으로 출력 dec o 정수 필드를 10진수 기반으로 출력 hex o 정수 필드를 16진수 기반으로 출력 left o 왼쪽 맞춤으로 출력 right o 오른쪽 맞춤으로 출력 fixed o 실수 필드를 고정 소수점 방식으로 출력 scientific o 실수 필드를 과학 산술용 방식으로 출력 flush o 스트림 버퍼 강제 출력(비워내기) showbase o 16진수의 경우 0x로, 8진수의 경우 0을 앞에 붙여서 출력 noshowbase o showbase지정 취소 showpoint o 실수 값에 대해, 정수 부분과 소수점 이하의 끝자리 이후 남은 공간을 0으로 출력 noshowpoint o sh..
상속 관계에서의 함수 중복 파생 클래스에 기본 클래스와 동일한 형식의 함수가 중복 작성된 경우, 기본 클래스에 대한 포인터로는기본 클래스에 선언된 함수를 호출하고, 파생 클래스에 대한 포인터로는 파생 클래스에 선언된 함수를 호출한다. 가상 함수와 오버라이딩 가상 함수란 virtual 키워드로 선언된 멤버 함수로서, 컴파일러에게 자신에 대한 호출을 실행 시간 까지미루도록 지시한다. 파생 클래스에서 기본 클래스에 선언된 가상 함수와 완전히 동일한 타입의 함수를 재정의하는 것을함수 오버라이딩 혹은 함수 재정의라고 부른다. 파생 클래스에서 가상 함수를 오버라이딩하고 기본클래스의 포인터로 파생 클래스의 객체를 가리킬 때,가상 함수를 호출하면 무조건 파생 클래스에서 오버라이딩한 가상 함수가 호출된다. 이것을 동적 ..