[解決済み] void*の正当な使用方法はありますか?
質問
の正当な使用方法はありますか?
void*
を C++ で使うことはできますか?それとも C にあったから導入されたのでしょうか?
私の考えをまとめておくと
入力 : 複数の入力タイプを許可したい場合、関数とメソッドをオーバーロードすることができます。代わりに、共通の基本クラス、またはテンプレート(回答でこれについて言及してくれたことに感謝します)を定義することもできます。どちらの場合も、コードはより記述的になり、エラーの可能性も低くなります (ベース クラスが正常な方法で実装されている場合)。
出力
: を受け取ることを好むような状況は思いつきません。
void*
を受け取ることを好むような状況は思いつきません。
私が言いたいことをはっきりさせるために。のユースケースがあるかどうかを特に尋ねているわけではありません。
void*
のユースケースがあるかどうかを尋ねているのではなく、もし
void*
が最良または唯一の選択肢である場合。これは、以下の何人かの人々によって完璧に回答されています。
どのように解決するのですか?
void*
の結果として少なくとも必要なのは
::operator new
(の結果として少なくとも必要です(また、すべての
operator new
...) と
malloc
の引数として、また配置の
new
演算子として使用できます。
void*
はすべてのポインタ型の共通の上位型と考えることができます。ですから、正確にはポインターの意味ではなく
void
へのポインタではなく、あらゆるものへのポインタを意味します。
ところで、いくつかの無関係なグローバル変数のデータを保持したい場合、いくつかの
std::map<void*,int> score;
と宣言した後、グローバル変数
int x;
と
double y;
そして
std::string s;
する
score[&x]=1;
そして
score[&y]=2;
そして
score[&z]=3;
memset
が欲しい
void*
アドレス (最も一般的なもの)
また、POSIX システムでは
dlsym
があり、その戻り値の型は明らかに
void*
関連
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 仮想デストラクタはいつ使うのか?
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。