[C++]/C++ 언어 기초(33)
-
은행계좌프로그램 실습 7단계
단계별 프로젝트를 더 이상 진행하기에 앞서 하나의 파일을 여러 개로 나눠서 내용을 정리할 필요가 있다. 하나의 파일 안에 모든 것이 다 들어있어서 내용파악이 쉽지 않기 때문이다. 그래서 이번 단계에서는 파일을 분할하고자 한다. 프로젝트 07단계의 도입각각의 클래스마다 선언은 .h파일에, 정의는 .cpp 파일에 저장하는 것이 좋다. 이렇게 되면 프로그램을 관리하기도 좋고, 또클래스의 구성이 한눈에 들어오기 때문에 프로그램의 내용을 파악하기도 수월해진다. 짧은 프로그램이라 할지라도 하나의 파일에 필요한 모든 요소를 담는 것은 바람직하지 못하다. 프로그램 설명비록 조금 늦었지만, 지금이라도 프로그램을 여러 개의 파일에 나눠서 관리를 하자. 예를 들어서 Simple이라는 이름의 클래스가 있다면, Simple.h..
2024.04.25 -
32. [C++] 예외처리
🍀 예외처리 방법#1. if-else문 사용#include "stdafx.h"#include using namespace std;int main(void){ int num1, num2; cout>num1>>num2; if(num2 == 0){ cout단점 : 프로그램 흐름을 구성하는 코드와 예외처리 코드를 구분하기 힘들다. #2. try - catch문 사용#include using namespace std;int main(void){ int num1, num2; cout>num1>>num2; try{ if(num2 == 0) throw num2; cout 🍀 try, catch문의 사용 방법try 예외를 발견한다catch 예외를 잡는다throw 예외를 던진다 try..
2024.04.25 -
31. [C++] 템플릿
템플릿 : 함수의 기능은 있지만 자료형이 정해지지 않은 틀.Java의 제네릭(Generic)같다는 생각이 들었다.타입이 없는 함수형태를 띄기 때문에 어떤 자료형을 입력하더라도 값 손실이 나는 것을 제외하고는 함수의 로직이 돌아간다.using namespace std;templete //or templete T Add(T num1, T num2){ return num1 + num2;}int main(void){ cout(1, 2)(1.1, 1.9)templete 혹은templete 형태로 템플릿 타입을 명시해줄 수 있다.템플릿은 일반 함수와 구분된다. = 템플릿 함수와 일반 함수의 이름이 같을 경우 다른 함수로 구분된다.또한, 여러 형태의 자료형을 쓸 수도 있다.te..
2024.04.24 -
은행계좌프로그램 실습 6단계
상속의 목적이 명확하지 않다면, 상속은 하지 않는 편이 나을 수도 있다. 그런데 우리는 앞서 상속이 필요한 가장 대표적이고도 중요한 이유를 확인하였다. 그리고 그 때 얻게 되는 이점이 무엇인지도 확인하였다. 프로젝트 06단계의 도입 본 단계의 프로젝트에서는 이전에 정의한 Account 클래스를 상속하는 다음 두 클래스를 추가로 정의하고자 한다.NormalAccount 보통예금계좌HighCreditAccount 신용신뢰계좌앞서 정의한 Account 클래스는 이자와 관련된 내용이 없다. (실제 이자가 지급되지 않는 계좌도 있다.) 그런데 일반 사용자가 이용하는 예금에는 적게나마 이자가 지급이 되니, 이자의 지급 및 처리방식에 따라서 위의 두 클래스를 추가로 정의하고자 한다위에서 말하는 '보..
2024.04.16 -
30. [C++] 가상 소멸자와 참조자의 참조 가능성
보호되어 있는 글입니다.
2024.04.16 -
29. [C++] 가상 함수(Virtual Function)
실습 문제 문제 1. 예제 EmployeeManager4.cpp를 확장하여 다음 특성에 해당하는 ForeignSalesWorker 클래스를 추가로 정의해보자 "영업직 직원 중 일부는 오지산간으로 시장개척을 진행하고 있다. 일부는 아마존에서, 또 일부는 테러의 위험이 있는지역에서 영업활동을 진행 중에 있다. 따라서 이러한 직원들을 대상으로 별도의 위험수당을 지급하고자 한다." 위험수당의 지급방식은 위험의 노출도에 따라서 다음과 같이 나뉘며, 한번 결정된 직원의 '위험 노출도'는 변경되지 않는다고 가정한다(이는 const 멤버변수의 선언을 유도하는 것이다.) 리스크 A: 영업직의 기본급여와 인센티브 합계 총액의 30%를 추가로 지급한다 리스크 B: 영업직의 기본급여와 인센티브 합계 총액의 20%를 추가로 지..
2024.04.16