728x90

LANG/C++ 42

[C++]15-2.C++의 예외처리 매커니즘

1.C++의 예외처리 매커니즘 이해: try와 catch그리고 throw의 이해 * try: 예외를 발견하다. * catch: 예외를 잡는다. * throw: 예외를 던진다. try { //예외발생 예상지역 } catch 블록 { //예외처리 코드의 삽입 } 항상 이어서 등장해야 됨. try 블록 내에서 발생하는 예외는 이어서 등장하는 catch블록에 의해 처리된다. throw: 예외가 발생했음을 알리는 문장의 구성에 사용된다. throw expn;

LANG/C++ 2023.05.26

[C++]13-2.클래스 템플릿(Class Template)

1.클래스 템플릿: 클래스를 템플릿으로 정의한 것 템플릿 클래스: 이를 기반으로 컴파일러가 만들어낸 클래스 이렇게 하면 별도의 클래스를 정의할 필요가 없음. 주의! 템플릿 함수를 호출할 때와 마찬가지로 템플릿의 객체를 생성할 때 과 같은 자료형 정보 생략이 가능? =>NO! 불가 2.클래스 템플릿의 선언과 정의의 분리 템플릿의 멤버함수는 외부에 정의해야 함 요런 식으로...

LANG/C++ 2023.05.26

[C++]13-1.템플릿에 대한 이해와 함수 템플릿

1. 함수 템플릿은 함수를 만들어 낸다. 함수의 기능은 결정되어 있지만, 자료형은 결정되어 있지 않아서 결정해야 한다. template //T라는 이름을 이용해서 아래의 함수를 템플릿으로 정의한다. T Add(T num1, T num2) { return num1 + num2; } template = template 자동 형변환해주는 것을 볼 수 있음. 한 번 함수가 만들어지면, 그 다음에는 만들어진 함수를 호출할 뿐, 새로운 함수를 만들지는 않음. 12, 13행에서 함수가 만들어지면, 14,15행에서 문장을 컴파일할 때는 앞서 만들어놓은 두 함수를 호출할 뿐임 즉, 함수는 자료형 당 하나만 만들어짐. 자료형을 붙이지 않으면 자동으로 자료형을 할당해줌 '함수 템플릿': 앞서 보인 다음의 정의와 같은 것 t..

LANG/C++ 2023.05.26

[C++]12-2.문자열 처리 클래스의 정의

string 클래스 디자인 목적: 문자열 처리 클래스를 직접 구현해봄으로써 연산자가 어떠한 형태로 오버로딩되어있는지 고민 1.표준 string 클래스의 분석 String클래스가 요구하는 것 1) 문자열을 인자로 전달받는 생성자의 정의 string str1 = "I like"; string str2 = "string class"; //위는 아래와 같다. string str1("I like"); string str2("string class"); 2)생성자, 소멸자, 복사 생성자 그리고 대입 연산자의 정의 저장하고자 하는 문자열의 길이가 일정치 않으므로 문자열 저장을 위한 메모리 공간을 생성자 내에서 동적할당 해야함. 3)결합된 문자열로 초기화된 객체를 반환하는 +연산자의 오버로딩 string str3 = ..

LANG/C++ 2023.05.23
728x90