Mordern C++ nullptr

CJB_ny·2022년 8월 29일
0

C++ 정리

목록 보기
75/95
post-thumbnail

nullptr이 사실은 C++11에서 온것임.

그러면 그전에 nullptr 표현을 어케 했노?

=> 0 또는 NULL로 했음.

(ㅈㄴ 오래된 책이나 그런거 보면)

어떤 포인터를 타고갔을 때 아무것도 없으면 실제로 '0'이 들어가 있다.

실제로 0이 들어가있다.

옛날에는

이렇게 표현했는데 포인터라는 것을 명시해주기 위해서

이렇게 표현을 해주었었다.

NULL = 0 인 매크로로 되어있어서 똑같다.

함수 예 ❗

두가지 버젼의 함수가 있을 경우

Test(0);
Test(NULL);

호출하면 두가지 경우 다 Test(int a)를 호출한다.

#define NULL 0에서 볼 수 있듯이

NULL이라는게 우리 눈으로만 보이는것이지 실제로 0이다.

반드시 사용해야 하는 이유

  • 오동작 방지

auto?

이럴경우 타입이 뭘까??

이런애인데 뭘하는 애인지는 모르겠지만

그런 숫자는 아니고 객체쪽에 가깝다.

결국에는 어떤 객체인데

이런식으로 자동으로 변환할 수 있는 기능들을 이렇게 만들어주고

주소값을 추출하는 것을 막기 위해 private으로 막아놓음.

private으로 막아놓은것은 옛날 스타일이다.

C++에서는

이게 더 현대적인 문법이다.

지금

이부분은 ( 잘 이해 안감 )

이런식으로 0인지 아닌지 비교할 수 있다.

선언

이렇게 클래스 만들자마자 객체를 59번째 줄에서 만들 수 있다.

이럴경우 클래스 이름을 빼도된다.

이렇게 빼도된다.

변환하면 안되는 의미로

이렇게 const class붙여주어도된다.

결론

nullptr 사용해라

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글