C++ Principle 3편
3강
객체, 타입, 값
대입
int y = 8;
y = 10;
- 대입과 초기화는 비슷한 것 같지만 논리적으로 다르다. 초기화에서는 타입지정이 나오지만 대입에는 타입 지정이 없다는 점에서 구별할 수 있다. 또한 원칙적으로 초기화를 수행할 때 벼수는 비어있지만, 대입을 수행할 때는 변수에 원래 남아있던 값을 먼저 지워야 하다는 점을 생각해볼 수 있다.
객체
객체란 데이터를 특정한 자료형으로 저장하는 것이다.
- 같아 보이는 값도 자료형에 따라서 다르게 저장된다.
double x = 1.2;
string y = "1.2";
- x에는 1.2라는 수가 저장되고
- y에는 ‘1’, ‘.’, ‘2’라는 세 문자가 저장된다.
타입 안정성
- 모든 객체는 정의하는 시점부터 정해진 타입이 있다. 프로그램 전체에서 그 타입과 규칙에 따라 객체를 사용하면 이를 타입 안정성이 있다고 한다.
- 항상 변수를 초기화하는 습관을 들여 타입 안정성을 확보하는 습관은 오류를 미리 예방하는 좋은 습관이다.
타입 변환(형변환)
- 타입 변환은 말 그대로 타입을 바꾸는 것인데 안전한 변환과 안전하지 않은 변환이 있다.
- 자료형의 크기는 char < int < double 이다. 큰 통에 작은 통에 있던 물을 옮기는 것은 괜찮지만 작은 통에 큰 통에 있던 물을 옮기게 되면 불상사가 일어날 수 있다. 특히 대부분의 컴파일러는 안전한 타입변환과 불안전한 타입 변환을 잡아주지않기 때문에 유의해야 한다.