C++11講座6回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
第6回はnullptrを説明します。
ポインタをどこも参照していない状態で初期化する際に、従来...
1: int main()
2: {
3: int* p = NULL;
4:
5: return 0;
6: }
しかし、このNULLはマクロ定義されているだけでVS2013の場合...
#define NULL 0
単純に0という数値であることが分かります。
しかしこの場合、オーバーロードの場合に問題があります。
1: #include <iostream>
2:
3: using namespace std;
4:
5: void func(char n)
6: {
7: cout << "Call char func" << endl;
8: }
9:
10: void func(char* n)
11: {
12: cout << "Call char* func" << endl;
13: }
14:
15: int main()
16: {
17: func(NULL);//func(char)が呼ばれる
18: func((char*)NULL);//明示的にキャストしなければならない
19:
20: return 0;
21: }
そこでポインタであることを指すキーワードとしてnullptrが出...
使い方は従来のNULLをそのままnullptrにするだけです。
1: int main()
2: {
3: func(nullptr);//func(char*)が呼ばれる
4:
5: return 0;
6: }
NULLをnullptrに変更して問題が起こることは無いので、NULLを...
以上でnullptrの説明を終わります。
前→C++11講座5回
次→C++11講座7回
#vote(やめろォ(建前)[0],ナイスぅ(本音)[1],(C++)流行...
終了行:
第6回はnullptrを説明します。
ポインタをどこも参照していない状態で初期化する際に、従来...
1: int main()
2: {
3: int* p = NULL;
4:
5: return 0;
6: }
しかし、このNULLはマクロ定義されているだけでVS2013の場合...
#define NULL 0
単純に0という数値であることが分かります。
しかしこの場合、オーバーロードの場合に問題があります。
1: #include <iostream>
2:
3: using namespace std;
4:
5: void func(char n)
6: {
7: cout << "Call char func" << endl;
8: }
9:
10: void func(char* n)
11: {
12: cout << "Call char* func" << endl;
13: }
14:
15: int main()
16: {
17: func(NULL);//func(char)が呼ばれる
18: func((char*)NULL);//明示的にキャストしなければならない
19:
20: return 0;
21: }
そこでポインタであることを指すキーワードとしてnullptrが出...
使い方は従来のNULLをそのままnullptrにするだけです。
1: int main()
2: {
3: func(nullptr);//func(char*)が呼ばれる
4:
5: return 0;
6: }
NULLをnullptrに変更して問題が起こることは無いので、NULLを...
以上でnullptrの説明を終わります。
前→C++11講座5回
次→C++11講座7回
#vote(やめろォ(建前)[0],ナイスぅ(本音)[1],(C++)流行...
ページ名: