#include <iostream> // 입출력을 위한 헤더 파일 포함
using std::cout; // std::cout을 간편하게 사용하기 위해 선언
using std::endl; // std::endl을 간편하게 사용하기 위해 선언
// 두 개의 템플릿 매개변수 T1과 T2를 가지는 CCC 클래스 정의
template <class T1, class T2>
class CCC {
T1 x; // T1 타입의 변수 x
T2 y; // T2 타입의 변수 y
public:
// 생성자: 두 개의 인자를 받아 x와 y에 초기화
CCC(T1 xx, T2 yy) {
x = xx; // x에 xx를 할당
y = yy; // y에 yy를 할당
}
// Print 메소드: x와 y를 출력
void Print() {
cout << x << ',' << y << endl; // x와 y를 출력하고 줄 바꿈
}
};
int main() {
// int 타입의 객체 c1 생성 및 초기화
CCC<int, int> c1(10, 20);
// double 타입의 객체 c2 생성 및 초기화
CCC<double, double> c2(3.5, 5.5);
// char와 const char* 타입의 객체 c3 생성 및 초기화
CCC<char, const char*> c3("I", "Love You!");
// 각 객체의 Print 메소드 호출
c1.Print(); // c1의 x, y 출력
c2.Print(); // c2의 x, y 출력
c3.Print(); // c3의 x, y 출력
return 0; // 프로그램 종료
}
#include <iostream> // 입출력을 위한 헤더 파일 포함
using std::cout; // std::cout을 간편하게 사용하기 위해 선언
using std::cin; // std::cin을 간편하게 사용하기 위해 선언
using std::endl; // std::endl을 간편하게 사용하기 위해 선언
// 두 개의 double 값을 받아 나누는 함수
void Div(double ja, double mo) {
try { // 1. 예외가 발생할 수 있는 코드를 묶음
if (mo == 0) throw mo; // 2. 분모가 0일 경우 예외를 던짐
cout << "결과: " << ja / mo << endl; // 나누기 결과 출력
}
catch (double) { // 3. double 타입의 예외를 처리
cout << "오류: 0으로 나눌 수 없음" << endl; // 예외 발생 시 메시지 출력
}
catch (int) { // 3. int 타입의 예외를 처리 (이 예제에서는 사용하지 않음)
cout << "int 오류: 0으로 나눌 수 없음" << endl; // 예외 발생 시 메시지 출력
}
}
int main() {
double x, y; // 분자와 분모를 저장할 변수 선언
cout << "분자를 입력하세요 = "; // 사용자에게 분자 입력 요청
cin >> x; // 사용자 입력을 x에 저장
cout << "분모를 입력하세요 = "; // 사용자에게 분모 입력 요청
cin >> y; // 사용자 입력을 y에 저장
Div(x, y); // Div 함수 호출하여 나누기 수행
return 0; // 프로그램 종료
}
#include <iostream>
#include <iomanip> //setfill, setw를 사용할때 사용
using namespace std;
int main()
{
cout << "abcdefg\n";
cout << 12345 << endl;
cout << 123.45 << endl;
cout << "10칸\n";
cout << setfill('*');
cout << setw(10) << "abcdefg" << endl;
cout << setw(10) << 12345 << endl;
cout << setw(10) << 123.45 << endl;
return 0;
}
이번 학기에 뭘 학습했나?
1학년 2학기 C++ 과목을 통해서 객체지향언어의 기본적인 문법을 익혔습니다. C++11이후 바뀐 모던 C++의 특징에 대해서도 학습하였습니다.
클래스를 통해 캡슐화하는 방법, 다형성으로 함수 오버로딩, 상속과 overriding을 통해 코드 재사용 등의 특징을 학습했습니다.
또한, template, STL, exception handing, 파일 입출력 등의 문법도 익혀서 C++로 실무 프로젝트를 진행하는데 무리가 없도록 기본 문법을 확실히 이해하고 있습니다.
포트폴리오?
구글링/AI : C++ stl file 성적처리
직접 만드는 것도 좋지만 좋은 소스를 많이 보고 만들기
블로그 관리(저작권, 복붙, 비공개, 꾸준, 습관)