1. 헤더 파일에는 절대 using 문을 작성하지 말자.
해당 헤더 파일을 include 하는 모든 파일에 적용되기 때문이다.
2. delete를 해도 해당 포인터는 여전히 힙 영역을 가리키고 있다.
delete를 하면 해당 힙 영역을 초기화해서 할당되지 않은 상태로 바꾸는 것 뿐이다.
해당 포인터를 꼭 nullptr을 대입해서 그 힙 영역을 가리키지 않도록 하자.
3. malloc와 free는 객체의 생성자와 소멸자를 호출하지 않는다.
그러니 쓰지말자.
4. using std::swap와 std::swap()의 차이
아래 두 코드의 차이점은?
void func()
{
using std::swap;
swap(a, b);
}
void func2()
{
std::swap(a,b);
}
- 전자는 a, b 타입에 맞는 swap을 우선적으로 찾는데 없을 경우 std::swap 함수를 사용한다.
- 후자는 어떠한 경우에도 std::swap 함수를 사용한다.
- 즉 따로 정의한 swap 함수가 있을 경우 using 방식을 쓰자. (왠만하면)
5. 멤버 함수보다 비멤버 비프렌드 함수 쓰기