c++ 생각하기 2.
Posted by Go crazy for anything that will make you smile.
1. 컴파일러가 스스로 하는 암시적인 타입변환. 단일인자 생성자를 통한 암시적 타입변환..... 이녀석의 때문에 생기는 버그는 찾기 어렵다. 미리미리 조심해야지. 단일인자 생성자의 경우에는 explicit 키워드를 사용하자. 하지만 이렇게 해도 명시적인 타입변환은 여전히 허용된다. 명시적인 타입변환까지 막을 필요가 있을까... 말그대로 사용자가 필요해서 대놓고 한다는데. 문제는 몰래하는 암시적변환이지만.... 또다른 방법으로는 컴파일러의 암시적 타입변환의 규칙을 교묘히 피해나가는 것이다. 즉, 컴파일러의 암시적 타입변환 규칙에 어긋나게 만드는 것이다. "사용자 정의 타입변환 함수는 두개 이상 쓰이지 않는다." 라는 것이 있다. 그래서 클래스만 잘 만들어 놓으면 객체생성은 허용하지만 암시적 타입변환은 불가..