C ++:デフォルトではテンプレート関数の整数型を初期化します

o.svensson

教育目的で、私は独自のC ++数値ベクトルテンプレートクラスを作成しています。2つのベクトルの内積に対して(v、w)を記述できるようにしたいのでoperator,()、次のようにオーバーロードします。

template<class T>
const T Vector<T>::operator,(const Vector<T>& v) const
{
    assertEqualSize(v);

    T t;
    for(size_t i=0; i<numElements; i++) {
        t += elements[i] * v[i];
    }
    return t;
}

私の質問は以下のようになります。どのように私は正しく初期化しますt(例:賢明な値で0.0Vector<double>)?試しましたT t();が、g ++から、たとえば、「double(*)()」はreturnステートメントで「constdouble」に変換できずoperator+=()、「(double()、double)」には定義されないことがわかります。

どうもありがとうございました!

フアンチョパンザ

必要なのは値の初期化と呼ばれ、組み込み型をゼロで初期化する効果があります。

T t{};     // C++11
T t = T(); // C++03 and C++11

これが機能しない理由

T t();

これは、と呼ばれるパラメータのない関数の宣言でありt、を返しますT

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C ++-14 enable_if_tを使用して、整数型でテンプレート化されたクラスのメンバー関数を選択します

分類Dev

C ++非型テンプレートパラメーター:整数型のtypedefは整数型ですか?

分類Dev

c ++テンプレート:(型として)特定の整数から変数を初期化する

分類Dev

符号なし整数型を指定するC ++テンプレート特性

分類Dev

C ++のデフォルト引数としてテンプレート型を使用する静的プライベート関数

分類Dev

C ++で、(整数型の)非型テンプレートパラメーターの型のみが異なる、同じ名前の2つの関数/クラステンプレートが許可されないのはなぜですか?

分類Dev

C ++テンプレート-浮動型と整数型のさまざまな特殊化

分類Dev

C ++のテンプレート関数内で自動(不明)タイプのベクトルを初期化する

分類Dev

静的変数はC ++ 17のテンプレート内でデフォルトでインライン化されていますか?

分類Dev

C ++でデフォルトのテンプレート機能引数を呼び出す方法は?

分類Dev

C ++テンプレートの型の優先順位と整数型

分類Dev

C ++は関数をテンプレートとして受け入れ、関数の戻り値の型のベクトルを返します

分類Dev

なぜc ++は決して使用できないデフォルトのテンプレート引数を許可するのですか?

分類Dev

次のフレーズはC ++で何を意味しますか:ゼロ、デフォルト、および値の初期化?

分類Dev

C ++ 2aクラスの非型テンプレート引数を初期化するときに型名を省略できますか?

分類Dev

C++: 型条件付きを使用するテンプレート関数で、型 'char*' のパラメーターを型 'double' の左辺値で初期化できません

分類Dev

C ++のデフォルト初期化は配列要素をデフォルト値に設定しますか?

分類Dev

Cのforループでイテレータ変数を初期化します

分類Dev

c ++クラステンプレートはインスタンス化できますが、同じテンプレートパラメータを使用した関数テンプレートのインスタンス化は失敗します

分類Dev

C ++はデフォルトパラメータで新しいスレッド関数を作成します

分類Dev

最初の引数がデフォルトの引数として2番目に設定されたテンプレート化されたC ++関数

分類Dev

テンプレート関数でサイズ「static * int」のchar配列を初期化するc ++

分類Dev

C ++のデフォルト初期化は以前のゼロ初期化を保持しますか?

分類Dev

C ++では「コピー初期化コンテキストでのデフォルト初期化」とはどういう意味ですか?

分類Dev

ゼロ初期化がc ++の初期化されていない変数のデフォルトではないのはなぜですか?それを強制するコンパイラオプションはありますか?

分類Dev

C ++のデフォルト引数でテンプレートパラメータをスキップすることは本当に不可能ですか、なぜ構文はそうではないことを示唆していますか?

分類Dev

C ++ 20では、プログラム定義型のstdでの関数テンプレートの特殊化はできなくなりますか?

分類Dev

テンプレート宣言では、c ++型の引数は省略されています。しかし、メンバー関数の定義はどうですか?

分類Dev

C ++構造体のメンバーはデフォルトで0に初期化されていますか?

Related 関連記事

  1. 1

    C ++-14 enable_if_tを使用して、整数型でテンプレート化されたクラスのメンバー関数を選択します

  2. 2

    C ++非型テンプレートパラメーター:整数型のtypedefは整数型ですか?

  3. 3

    c ++テンプレート:(型として)特定の整数から変数を初期化する

  4. 4

    符号なし整数型を指定するC ++テンプレート特性

  5. 5

    C ++のデフォルト引数としてテンプレート型を使用する静的プライベート関数

  6. 6

    C ++で、(整数型の)非型テンプレートパラメーターの型のみが異なる、同じ名前の2つの関数/クラステンプレートが許可されないのはなぜですか?

  7. 7

    C ++テンプレート-浮動型と整数型のさまざまな特殊化

  8. 8

    C ++のテンプレート関数内で自動(不明)タイプのベクトルを初期化する

  9. 9

    静的変数はC ++ 17のテンプレート内でデフォルトでインライン化されていますか?

  10. 10

    C ++でデフォルトのテンプレート機能引数を呼び出す方法は?

  11. 11

    C ++テンプレートの型の優先順位と整数型

  12. 12

    C ++は関数をテンプレートとして受け入れ、関数の戻り値の型のベクトルを返します

  13. 13

    なぜc ++は決して使用できないデフォルトのテンプレート引数を許可するのですか?

  14. 14

    次のフレーズはC ++で何を意味しますか:ゼロ、デフォルト、および値の初期化?

  15. 15

    C ++ 2aクラスの非型テンプレート引数を初期化するときに型名を省略できますか?

  16. 16

    C++: 型条件付きを使用するテンプレート関数で、型 'char*' のパラメーターを型 'double' の左辺値で初期化できません

  17. 17

    C ++のデフォルト初期化は配列要素をデフォルト値に設定しますか?

  18. 18

    Cのforループでイテレータ変数を初期化します

  19. 19

    c ++クラステンプレートはインスタンス化できますが、同じテンプレートパラメータを使用した関数テンプレートのインスタンス化は失敗します

  20. 20

    C ++はデフォルトパラメータで新しいスレッド関数を作成します

  21. 21

    最初の引数がデフォルトの引数として2番目に設定されたテンプレート化されたC ++関数

  22. 22

    テンプレート関数でサイズ「static * int」のchar配列を初期化するc ++

  23. 23

    C ++のデフォルト初期化は以前のゼロ初期化を保持しますか?

  24. 24

    C ++では「コピー初期化コンテキストでのデフォルト初期化」とはどういう意味ですか?

  25. 25

    ゼロ初期化がc ++の初期化されていない変数のデフォルトではないのはなぜですか?それを強制するコンパイラオプションはありますか?

  26. 26

    C ++のデフォルト引数でテンプレートパラメータをスキップすることは本当に不可能ですか、なぜ構文はそうではないことを示唆していますか?

  27. 27

    C ++ 20では、プログラム定義型のstdでの関数テンプレートの特殊化はできなくなりますか?

  28. 28

    テンプレート宣言では、c ++型の引数は省略されています。しかし、メンバー関数の定義はどうですか?

  29. 29

    C ++構造体のメンバーはデフォルトで0に初期化されていますか?

ホットタグ

アーカイブ