옆히
NULL vs nullptr 본문
NULL은 C언어에서 유래된 매크로로 #define NULL 0 으로 정의되었다
-> 함수의 오버로딩을 사용할 때 NULL을 전달하면 포인터와 정수형 타입간의 혼동이 발생한다
nullptr은 C++ 11에서 도입된 키워드로 포인터 타입과 호환되는 null 포인터 상수를 나타낸다. 혼동 발생 x
#include <iostream>
void foo(int x) {
std::cout << "int version called: " << x << std::endl;
}
void foo(int* p) {
std::cout << "pointer version called" << std::endl;
}
int main() {
foo(0); // int version called: 0
foo(NULL); // int version called: 0 (int 타입으로 해석됨)
foo(nullptr); // pointer version called (포인터 타입으로 해석됨)
}
'개인공부용1 > etc' 카테고리의 다른 글
this 메모 (0) | 2024.08.29 |
---|---|
얄코의 TOO MUCH 친절한 깃&깃허브 (0) | 2024.06.14 |
이득우의 게임 수학 (1) | 2024.01.31 |