C++ のクラスイニシャライザで const 配列を初期化する
2023-09-15 19:34:05
質問
C++で以下のようなクラスがあります。
class a {
const int b[2];
// other stuff follows
// and here's the constructor
a(void);
}
問題は、コンストラクタの関数本体の中では初期化できないので、初期化リストでどのようにbを初期化するかです。bは
const
?
これはうまくいきません。
a::a(void) :
b([2,3])
{
// other initialization stuff
}
編集: このような場合は
b
に異なる値を指定することができますが、その値はインスタンスの寿命の間、一定であることが知られている場合です。
どのように解決するのですか?
他の人が言ったように、ISO C++はそれをサポートしていません。しかし、あなたはそれを回避することができます。代わりにstd::vectorを使えばいいだけです。
int* a = new int[N];
// fill a
class C {
const std::vector<int> v;
public:
C():v(a, a+N) {}
};
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] 配列のすべてのメンバーを同じ値で初期化するには?
-
[解決済み] HashSetの値を構造的に初期化する方法は?
-
[解決済み] std::vectorをハードコードされた要素で初期化する最も簡単な方法は何ですか?
-
[解決済み] C++で静的プライベートメンバを初期化する方法は?
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み] constポインタの意味とは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++