おとついの晩ご飯

忘れやすいので忘れたくないことを書いています。

【C++】汎用ポインタについて

問題

汎用ポインタとは。。。


理解

あらゆる型のポインタを入れることができるポインタ。
以下のような書き方

// void型の変数を定義する
void *p_data;

int num = 10;

// int型のポインタを入れることも可能
p_data = &10


std::string str = "aaa";

// std::string型のポインタを入れることも可能
p_data = &str;


// 入れた値を取り出す時はキャストして使う
auto data = static_cast<std::string*>(p_data);
// 値を取得する
data = *data;

注意

汎用性があり便利だが、積極的に使う場面はあまり想定できない。
使用機会は少なそう。。。
確実に正しい型にキャストしないといけないので、その保障ができる場合のみ使用する。