mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question ランダム
speech play
speech pause
speech stop

C++ の「デフォルト コンストラクターがありません」エラーを修正する方法

この文脈での「逸脱」とは、コードの予期される動作が変化し、予期されたパターンに従っていないことを意味します。言い換えれば、コードは意図したパスから逸脱しています。

あなたが直面している問題は、「std::vector」にデフォルトのコンストラクターがないという事実によって引き起こされます。そのため、「MyVector」のインスタンスを作成しようとすると、 ` 引数を指定しないと、コンパイラはオブジェクトを構築できません。この問題を解決するには、空のリストでベクトルを初期化するデフォルトのコンストラクタを `MyVector` クラスに追加します。
std::vector myVector;
public:
MyVector() : myVector{} {} // デフォルトのコンストラクタ
// ... その他のメソッド ...
};
```
これによりインスタンスを作成できるようになります引数なしで `MyVector` を追加すると、オブジェクトは正しく構築されます。

あるいは、引数をとらず、空のリストでベクトルを初期化するコンストラクターを追加することもできます。
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector&) {} // デフォルトのコンストラクタ MyVector() : myVector({}) {} // デフォルトのコンストラクタ // ... 他のメソッド ...
};
```
これにより、引数なしで `MyVector` のインスタンスを作成することもでき、オブジェクトが正しく構築されます。

Knowway.org は、より良いサービスを提供するために Cookie を使用しています。 Knowway.org を使用することにより、Cookie の使用に同意したことになります。 詳細については、Cookie ポリシー テキストをご覧ください。 close-policy