항목 5 : 사용자 정의 타입변환 함수에 대한 주의를 놓지 말자. 개념정리 매개변수(parameter)는 함수를 선언할 때 괄호 안에 명시하는 데이터 인자(argument)는 함수를 호출할 때 넘기는 데이터 사용자 정의 타입변환 함수는 operator char () 같은 함수를 말한다.(쉽게 생각해 형변환 연산자 오버로딩이다) 이유 1. 프로그래머의 의도와 달리 함수가 잘못 호출될 수 있다. 예)std::cout
책 정리 검색 결과
항목 4 : 쓸데 없는 기본 생성자는 그냥 두지 말자. 개념 정리 1. 클래스 생성시 기본적으로 생성되는 함수들이 무엇이 있는지 알아야 한다. operator 까지! 2. 1번의 사항과 더블어 각각의 기본적인 상태도 알아야 한다. 이유 1. 기본 생성자가 없을 경우, 배열의 생성이나 new 연산을 사용 할수 없다. 2. 기본 생성자가 없을 경우, 템플릿 기반의 콘테이너를 사용 할수 없다. 해결방법 1. 쓸데없이 생성자 정의는 하지 마라. 2. 만약 기본 생성자가 없다면, 자신에 맞는 기본생성자를 만들어 주라. 주의점 1. 이 이야기는 기본 생성자가 다른 용도로 쓰일 때, 본래 목적의 기본생성자가 있어야 한다. 2. 배열 선언시나 new를 객체 배열들이거나 기본생성자 ()를 사용 한다는 점을 알고 있어야 ..
항목 3 : 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다. 개념정리 다형성 : 기본 클래스 객체의 포인터나 참조자를 통해서 파생 클래스 객체를 조작 하는 성질 public 상속의 쓰임 중 함수의 인자값이 기본클래스의 포인터나 레퍼런스일때 파생클래스도 받을수 있도록 해준다. 이유 1. 파생 클래스의 객체의 크기와 기본 클래스의 객체의 크기가 다르기 때문에, 포인터 계산(배열이니까!)시 오류가 발생한다! 해결방법 1. 배열의 포인터 계산과 다형성의 포인터 계산은 서로 다르다는 차이점을 숙지해라. 개인적인 생각 1. 이제부터 슬슬 기본 지식이 있어야지만 이해 할수 있는 수준이 나온다. 2. 이 차이점을 안다면, 코딩할 때 주의를 할수 있을것 같다.
항목 2 : 가능한 C++ 스타일의 캐스트를 즐겨 쓰자 개념 정리 1급 기피 대상 : goto 문, cast문(형변환) C++ 캐스팅 변환 사용 법 : http://ikpil.tistory.com/262 참조 이유 1. C스타일의 캐스트는 어떤 타입을 다른 타입으로 한방에 바꾸어 주는 괴물이다. 2. 눈으로 찾아 내기가 힘들다. 해결방법 1. 캐스팅 변환환을 쓸때는 C++ 스타일로 쓰자 주의점 1. 캐스팅 변환을 쓸때만 쓰는것이지 즐겨 쓰라는것이 아니다. 써야지만 할수 있을때 이렇게 쓰라는것이다. 2. 함수 포인터를 형변환은 목에 칼이 들어 올 경우가 아니라면 쓰지 말아라.(항목 31에서 자세하게 설명해준다고함) 개인적인 설명 캐스팅 변환 요약 static_cast : int를 double로.. 이런 류..
항목 1 : 포인터와 참조자를 구분하자. 개념 정리 포인터(pointer)는 NULL 을 가질수 있다. 참조자(reference)는 NULL 을 가질수 없다. 그렇기 때문에 C++ 스펙에는 참조자는 선언과 동시에 정의해야 한다. 그리고 참조자는 초기에 참조하고 있는것만 참조 할수 있으며, 다른 객체로 바꿀수 없다. 이유 1. 더 효율적인 코딩이 가능해 진다. 해결 방법 1. 각각 어떨때 쓰는지 알아 두어야 한다. 포인터(pointer)는 가리키는 객체의 주소가 없을 때가 있거나, 하나의 포인터로 여러개의 객체를 가리킬 필요가 있을 때 참조자(reference)는 가리키는 객체의 주소가 시작부터 끝까지 있거나, 오직 한개의 객체만 가리킬 때 여기에 참조자(reference)를 쓸때가 한가지 더 있다. op..
최근댓글