본문 바로가기

프로그램언어

파일 입출력 파일 입출력은 fstream의 ifstream 을 이용하여 파일을 입력하고 ofstream 을 이용하여 파일을 출력합니다. 파일 읽기 - ifstream 객체명("파일명"); 파일 쓰기 - ofstream 객체명("파일명"); ifstream 함수 함수 설명 close 파일 닫기 is_open 파일이 열러 있는지 확인 open 파일 열기 rdbuf 저장된 스트림 버퍼 주소를 반환 swap 이 basic_ifstream의 콘텐츠를 제공된 basic_ifstream의 콘텐츠로 교환 ofstream 함수 함수 설명 close 파일 닫기 is_open 파일이 열러 있는지 확인 open 파일 열기 rdbuf 저장된 스트림 버퍼 주소를 반환 swap 이 basic_ifstream의 콘텐츠를 제공된 basic_ifs.. 더보기
템플릿 템플릿 함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료형으로 사용할 수 있도록 만들어 놓은 틀이다. 함수 템플릿과 클래스 템플릿으로 나누어진다. 함수템플릿 –함수 템플릿은 template로 시작한다. 사이에 템플릿에서 사용할 임의의 타입 이름을 인자로 나열한다. 인자로 전달되는 타입 이름을 템플릿 타입 이름이라고 하며 식별자로서 마음대로 정할 수 있지만 일반적인 관례로 T, _Tx, _Ty, T1 등과 같이 가능하면 짧게 만든다. –템플릿 타입 이름을 나타내기 위하여 typename이라는 키워드를 사용하는데 구형 컴파일러 는 typename 대신 class를 사용하였다. typename, class 모두 사용 가능하지만 가능하면 typename을 사용하는 편이 좋다. templa.. 더보기
클래스 예제2 음식주문 - menu_list.h - #include #include using namespace std; class Menu { public: int food_num = 0; string food_name = ""; int price = 0; void menu_list(); void print_order(); }; void Menu::menu_list() { cout 더보기
연산자2 연산자 함수의 여러 가지 유형 대입연산자 대입연산자는 인자로 받은 값을 이용하여 멤버변수의 값을 변경하고, 중첩된 후속 연산에 사용될 수 있도록 자기자신을 레퍼런스 타입으로 리턴하면 됩니다. 인자를 클래스 타입으로 받는 경우 const 레퍼런스 타입으로 받도록 했고, 기본 데이터 타입으로 받는 경우는 변수 타입으로 받도록 했습니다. class Point { public: … Point &operator=(const Point &pt); Point &operator+=(const Point &pt); Point &operator-=(const Point &pt); Point &operator*=(int mag); Point &operator/=(int div); }; #include using namesp.. 더보기
연산자1 연산자 오버로딩 연산자 오버로딩은 연산자가 가지고 있는 본래 기능을 새로운 데이터 타입에 적용할 수 있게 확장하기 위한 것이지, 연산자에 새로운 기능을 부여하기 위한 것이 아닙니다. 연산자 오버로딩의 제약 – 연산자 오버로딩을 통해 연산자의 우선순위나 결합성을 바꿀 수는 없습니다. – 기본 데이터 타입끼리의 연산은 연산자 함수로 정의할 수 없습니다. – 모든 연산자가 다 오버로딩을 할 수 있는 것은 아닙니다.(sizeof연산자, 삼항조건연산자는 오버로딩이 금지된 연산자) 단항연산자 Point 클래스에 대한 ++ 연산자의 기능을 x, y 좌표를 각각 1씩 증가시키는 것으로 정의해보겠습니다. 연산자 함수는 operator 키워드 다음에 연산자 기호를 붙여서 정의합니다. 그래서 ++ 연산자의 기능을 정의하기 .. 더보기
클래스5 문제 1. Shape 클래스를 작성하고 Rectangle, Triangle, Circle등의 자식 클래스이다. 아래의 그림을 보고 각각의 클래스를 작성하고 부모 클래스인 Shape를 상속받아 출력예와 같이 출력하시오. 출력 예] 도형 : 사각형 도형 : 삼각형 도형 : 원형 2. 1번 문제에서 area()메소드를 추가하여 입력예와 출력 예보고 생성자 함수를 변경하여 같이 출력하시오. 입력 예] 가로 : 4 세로 : 5 입력 예] 가로 : 4 세로 : 5 입력 예] 반지름 : 5 출력 예] 도형 : 사격형 면적 : 20.0 출력 예] 도형 : 삼각형 면적 : 10.0 출력 예] 도형 : 원형 면적 : 78.5 3. 사칙연산 클래스와 진수변환 클래스를 작성하여 출력하는 프로그램을 작성하시오. 입력 예] 11 + .. 더보기
클래스5 상속 상속(Inheritance)의 사전적 의미는 자식이 부모가 가진 모든 것을 물려 받는 것을 의미하는데 OOP의 상속도 기본적인 의미는 동일하다. 이미 정의되어 있는 클래스의 모든 특성을 물려 받아 새로운 클래스를 작성하는 기법을 상속이라고 한다. 상속에 의해서 새로운 클래스를 만들 때 원래 있던 클래스를 기반클래스라고 하고, 새로 만들어지는 클래스를 파생 클래스라고 한다. 상위 클래스, 기초(base) 클래스, 슈퍼(super) 클래스, 부모(parents) 클래스 하위 클래스, 유도(derived) 클래스, 서브(sub) 클래스, 자식(child) 클래스 - 기존의 클래스를 재활용한다. - 공통되는 부분을 상위 클래스에 통합하여 반복을 제거하고 유지, 보수를 편리하게 한다. - 공동의 조상을 가지.. 더보기
클래스4 문제 1. 원의 넓이와 둘레를 구하는 프로그램을 작성하시오. ( 단 파이 값은 정적 멤버변수를 사용하시오.) 더보기