nullptr이 사실은 C++11에서 온것임.
그러면 그전에 nullptr 표현을 어케 했노?
=> 0 또는 NULL로 했음.
(ㅈㄴ 오래된 책이나 그런거 보면)
어떤 포인터를 타고갔을 때 아무것도 없으면 실제로 '0'이 들어가 있다.
실제로 0이 들어가있다.
옛날에는
이렇게 표현했는데 포인터라는 것을 명시해주기 위해서
이렇게 표현을 해주었었다.
NULL = 0 인 매크로로 되어있어서 똑같다.
두가지 버젼의 함수가 있을 경우
Test(0);
Test(NULL);
호출하면 두가지 경우 다 Test(int a)를 호출한다.
#define NULL 0에서 볼 수 있듯이
NULL이라는게 우리 눈으로만 보이는것이지 실제로 0이다.
이럴경우 타입이 뭘까??
이런애인데 뭘하는 애인지는 모르겠지만
그런 숫자는 아니고 객체쪽에 가깝다.
결국에는 어떤 객체인데
이런식으로 자동으로 변환할 수 있는 기능들을 이렇게 만들어주고
주소값을 추출하는 것을 막기 위해 private으로 막아놓음.
private으로 막아놓은것은 옛날 스타일이다.
C++에서는
이게 더 현대적인 문법이다.
지금
이부분은 ( 잘 이해 안감 )
이런식으로 0인지 아닌지 비교할 수 있다.
이렇게 클래스 만들자마자 객체를 59번째 줄에서 만들 수 있다.
이럴경우 클래스 이름을 빼도된다.
이렇게 빼도된다.
변환하면 안되는 의미로
이렇게 const class붙여주어도된다.
nullptr 사용해라