[C++11]NULLとはおさらばnullptr |
2014年11月22日02:09:11 |
|
C++11からnullptr(無効なポインタ)が型として採用されました。
やったー。これは積極的に使うべきです。
これまではマクロが定義されていただけなので飛躍的な進歩と言えます。
#define NULL 0
個人的に一番大きなメリットはNULLを使う場合に必要だった
何かしらのヘッダーファイルのインクルードが不要になることです。 |
1
2
3
4
| #include <cstdlib>
int* p1 = NULL;
int* p2 = nullptr; |
あとは型として定義づけが行われたおかげで関数・メソッドの
オーバーロードもやりやすくなりました。
普通の人はこっちのメリットが主でしょうね(汗 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <cstdio>
void hoge( int i )
{
printf( "A" );
}
void hoge( int* i )
{
printf( "B" );
}
hoge( NULL );
hoge( nullptr ); |
余談ですが、筆者はキーワード名が気に入りません他の言語ではnullというキーワードを
使うことが多いので、C++もnullが良かったです...
C++/CLIから逆輸入ということなので政治的な理由なのでしょうが無念です。
nilとかいうキーワードを採用していたC#の前身や某組み込み言語も…いえ何でもありません |
|