목록타입변환 (5)
오븐 노트
#include using namespace std; // 캐스팅 (타입 변환) // 면접 단골 질문 // 구시대적 C 스타일의 캐스팅은 버려야함 // ex) (int) x / static_cast o class Player { public: virtual ~Player() { } }; class Knight : public Player { public: }; class Archer : public Player { public: }; class Dog { }; // 1) static_cast -> 사용 빈도 제일 높음 // 2) dtnamic_cast -> 두번째로 빈도 높음 // 3) const_cast -> 거의 사용하지 않지만 면접용으로라도 알아두기 // 4) reinterpret_cast -> 사..
#include using namespace std; class Knight { public: int _hp = 0; }; class Item { public: Item() { cout
#include using namespace std; class Item { public: Item() { cout
#include using namespace std; // malloc -> void*를 반환하고, 이를 우리가 (타입 변환)을 통해 사용하였음. class Knight { public: int _hp = 10; }; class Dog { public: Dog() { } // 타입 변환 생성자 Dog(const Knight& knight) { _age = knight._hp; } // 타입 변환 연산자 // 특이하게도 리턴 타입이 없음. Knight에서 모든 의미를 함축하고 있기 때문 operator Knight() { return (Knight)(*this); } public: int _age = 1; int _cuteness = 2; }; class BullDog : public Dog { publi..
타입 변환 #include using namespace std; int main() { int hp = -1; short hp2 = hp; // 윗쪽 비트 데이터가 잘린 상태로 저장 float hp3 = hp; // 실수로 변환 시 정밀도 차이가 있기 때문에 데이터 손실 unsigned int hp4 = hp; // 비트 단위로 보면 같지만, 분석하는 방법이 달라짐 } 곱셈 (오버플로우) 나눗셈 (0 조심, 실수 관련) #include using namespace std; int main() { int hp = 123; int maxHp = 1000; float ratio1 = hp / maxHp; // int 나누기 int는 결과값이 정수로 나타나기 때문에 0.123이 아닌 0으로 나타남 float r..