본문 바로가기

C++5

static_cast static_cast 형 변환 연산자는 다음의 형태를 갖는다.(dynamic_cast 연산자와 동일한 형태이다.) static_cast(expr) 그리고 static_cast 연산자를 사용하는 우리들에게 컴파일러는 다음과 같이 이야기한다. "좋아 ! 요도 클래스의 포인터 및 참조형 데이터를 기초 클래스의 포인터 및 참조형 데이터로뿐만 아니라, 기초 클래스의 포인터 및 참조형 데이터도 유도 클래스의 포인터 및 참조형 데이터로 아무런 조건 없이 형 변환시켜 줄게, 하지만 그에 대한 책임은 네가 져야해!" #include class Car { private: int fuelGauge; public: Car(int fuel) : fuelGauge(fuel) { } void ShowCarState() { std:.. 2023. 2. 14.
dynamic_cast dynamic_cast 형 변환 연산자는 다음의 형태를 갖는다. dynamic_cast(expr) 즉, 사이에 변환하고자 하는 자료형의 이름을 두되, 객체의 포인터 또는 참조형이 와야하며, () 사이에는 변환 대상이 와야 한다. 그리고 요구한 형 변환이 적절한 경우에는 형 변환된 데이터를 반환하지만, 요구한 형 변환이 적절하지 않은 경우에는 컴파일 시 에러가 발생한다. 물론 여기서 말하는 적절한 형 변환은 다음의 경우를 뜻한다. "상속 관계에 놓여 있는 두 클래스 사이에서 듀오 클래스의 포인터 및 참조형 데이터를 기초 클래스의 포인터 및 참조형 데이터로 형 변환 하는 경우" #include class Car { private: int fuelGauge; public: Car(int fuel) : fuel.. 2023. 2. 14.
C++ 의 예외처리 메커니즘 C++ 은 구조적으로 예외를 처리할 수 있는 메커니즘을 제공한다. 이 메커니즘을 이용하면, 코드의 가독성과 유지 보수성을 높일 수 있다. 예외의 처리를 프로그램의 일반적인 흐름에서 독립시키는 것이 가능하기 때문이다. C++의 예외처리 메커니즘 이해 : try와 catch 그리고 throw의 이해 예외 처리 메커니즘과 관련해서 익숙해져야 할 세 가지 키워드는 다음과 같다. try 예외를 발견한다. catch 예외를 잡는다. throw 예외를 던진다. try 블록 try 블록은 예외발생에 대한 검사의 범위를 지정할 때 사용된다. 즉, try 블록 내에서 예외가 발생하면, 이는 C++의 예외처리 메커니즘에 의해서 처리가 된다. try { // 예외발생 예상지역 } catch 블록 catch 블록은 try 블록.. 2023. 2. 10.
클래스 템플릿의 특수화 클래스 템플릿을 특수화 하는 이유는 특정 자료형을 기반으로 생성된 객체에 대해, 구분이 되는 다른 행동양식을 적용하기 위해서이다. 즉, 클래스 템플릿을 특수화하면, 템플릿을 구성하는 멤버함수의 일부 또는 전부를 다르게 행동하도록 정의할 수 있다. 클래스 템플릿을 특수화하는 방법은 다음과 같다. 먼저 다음과 같이 정의된 클래스 템플릿이 존재 할때, template class SoSimple { public: T SimpleFunc(T num) { . . . . } } 이를 기반으로 자료형 int에 대해 특수화 한 템플릿 클래스는 다음과 같이 정의한다. template class SoSimple { public: int SimpleFunc(int num) { . . . . } } 이렇게 in형에 대해서 특수.. 2023. 2. 9.
C++ 출력 #include int main(void) { std::cout 2021. 11. 9.
반응형