목록전체 글 (91)
정체불명의 모모
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dDRbFz/btreAJXxg4F/XSr0wmbeSr1w1LZaIWt2RK/img.png)
이번 장에서 중점으로 봐야하는 내용을 보여드리겠습니다. 1. 상등 관계 와 동등 관계의 차이 파악 2. 비교 함수를 사용할 때 잊지 말아야 할 제약 사항 3. 포인터의 연관 컨테이너에 대해 커스텀 비교 함수를 쓸 때 좋은 점 4. key의 상수성질에 대한 실체 5. 연관 컨테이너의 효율을 향상 시키는 법 1. 상등 관계 와 동등 관계의 차이 파악 - 상등성 : operator == - 동등성 : operator
static_cast란? : 기본 자료형의 형변환 및 기본(base) 클래스에서 파생(derived) 클래스로의 포인터 변환 연산에 사용할 수 있다. 형 변환 시점이 컴파일 시점이기 때문에 static 이라는 명칭이 붙는다. ( 정적 캐스팅 / 논리적인 캐스팅 / 묵시적 형변환과 같다.) static_cast(대상) static_cast를 사용하는 이유 실수형과 정수형, 정수형과 열거형등의 기본 데이터 타입 간의 변환 상속관계의 클래스 계층 간의 변환 void 포인터를 다른 타입의 포인터로 변환 서로 다른 타입의 포인터 간의 타입 변환은 못함 static_cast의 제약 사항 런타임 타입 검사를 하지 않음 아형성이 없어도 변환가능(RTTI 옵션이 꺼져있어도 된다.) 다중 상속에서 기본 클래 간의 타입 변..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7vZeR/btrevaohrOd/APD4Yb1i0rllskklkc6gxK/img.png)
업 캐스팅이란? : 업캐스팅이란 기본 클래스 포인터로 파생클래스 객체를 가리키는 것 입니다. 업 캐스팅을 하게되면 기본 클래스에 정의된 멤버만 호출할 수 있기 때문에 파생 클래스 고유의 기능을 사용할 수가 없습니다. 부모 클래스 -> 자식 클래스 ex ) Parents* parents = new Child; 사용 하는 이유? : 다형성을 이용해서 코드 재사용성을 높이기 위해서 이다. 예제 코드 #include using namespace std; class CBase { public: virtual void show() { std::cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xsPFT/btrelTapCMp/yuq3OAXBXZiiOsihuWh3ak/img.png)
dynamic_cast란? : class의 상속관계에서 형변환을 프로그래머가 올바르게 하도록 도와주는 기능을 제공해주는 녀석이다. dynamic_cast 는 RTTI(Run Time Type Information)을 지원한다. ← 그래서 비용이 비싸다. RTTI는 런타인에서 클래스의 type_info를 보고 해당 클래스가 올바른 type의 형태인지 아닌지 판단하게 해줍니다. dynamic_cast는 상속 관계 안에서 포인터나 참조자의 타입을 기본 클래스에서 파생 클래스로의 다운 캐스팅과 다중 상속에서 기본 클래스간의 안전한 타입 캐스팅에 사용된다. 부모 클래스에 virtual 함수가 없는 경우 : 자식클래스에서 부모클래스로만 변환이 가능하며, (자식 클래스에서 부모 클래스로 변환하기 위해서는 부모클래스를..