[解決済み】C++ 構造体の初期化
2022-03-26 23:21:05
質問
C++で構造体を以下のように初期化することは可能でしょうか?
struct address {
int street_no;
char *street_name;
char *city;
char *prov;
char *postal_code;
};
address temp_address =
{ .city = "Hamilton", .prov = "Ontario" };
リンク ここで と こちら は、C言語でのみこのスタイルを使用することが可能であると述べていますが、そうであるならば、なぜC++では不可能なのでしょうか? C++で実装されていない根本的な技術的理由があるのでしょうか、それともこのスタイルを使用するのはバッドプラクティスなのでしょうか。 私の構造体は大きく、このスタイルではどの値がどのメンバに割り当てられているかが明確に読み取れるため、この方法で初期化するのが好きなんです。
同じ読みやすさを実現する他の方法があれば教えてください。
この質問を投稿する前に、以下のリンクを参照しました。
どのように解決するのですか?
それぞれの初期化値が何であるかを明確にしたい場合は、複数行に分割し、それぞれにコメントを付ければよいでしょう。
address temp_addres = {
0, // street_no
nullptr, // street_name
"Hamilton", // city
"Ontario", // prov
nullptr, // postal_code
};
関連
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] なぜリストの初期化(中括弧を使用)が他の方法より優れているのですか?
-
[解決済み】コンストラクタの初期化リストの評価順序について
-
[解決済み】コピー初期化と直接初期化は違うのですか?
-
[解決済み】メンバー初期化リストの使用を推奨する理由は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み】C++構造体のメンバはデフォルトで0に初期化されますか?
-
[解決済み] C++11 はなぜ C99 のような指定イニシャライザーリストをサポートしないのですか?[クローズド]