クラスのメンバーが存在しないのはなぜですか?

チェス

私は地図クラスを書きました:

typedef int (& func(const std::string &));

template <class t_child>
class map final
{
    std::vector<t_child> m_table;
    const func m_hasher;
public:
    explicit map(const func hasher) : m_hasher(hasher) {}
    map(const map &copy) = delete;
    ~map();
    map &operator=(const map&) = delete;
    //***
};

しかし、エラーが発生します:

map.hpp:15: error: class ‘map<t_child>’ does not have any field named ‘m_hasher’
     explicit map(const func hasher) : m_hasher(hasher) {}
                                       ^~~~~~~~

どうしましたか?なぜ存在しないのですか?

ダニエル・アバクロンビー

これは良い答えではないことは理解していますが、それが必要な場合は、簡単に機能させる方法を説明できます。

<functional>関数ポインタの文法よりも覚えやすいので、私は通常このようなものに使用します。以下のコンパイルがあります。

#include <string>
#include <functional>

using func = std::function<int(std::string&)>;

template <class t_child>
class map final
{
    std::vector<t_child> m_table;
    const func m_hasher;
public:
    explicit map(const func hasher) : m_hasher(hasher) {}
    map(const map &copy) = delete;
    ~map();
    map &operator=(const map&) = delete;
    //***                                                                                                                                                                                          
};

int main() {
  return 0;
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Swiftがクラスのメンバーごとの初期化子を提供しないのはなぜですか?

分類Dev

基本クラスのメンバーが、コンストラクターで最初に初期化された値を保持しないのはなぜですか?

分類Dev

なぜC ++は、派生クラスが初期化リストで基本クラスのメンバーを使用することを許可しないのですか?

分類Dev

同じステートメントがC ++のクラスメンバーで機能しないのはなぜですか?

分類Dev

サブクラスメンバーが保護されていないのはなぜですか?

分類Dev

c ++派生クラスオブジェクトにメンバーがないのはなぜですか?

分類Dev

a =&14の&14が1つのステートメントしか存在しないのはなぜですか?

分類Dev

内部クラスが静的メンバーを宣言できないのはなぜですか?

分類Dev

コンストラクターがパラメーターを設定しないのはなぜですか?

分類Dev

C ++ 11文字列の新しい関数(stod、stof)が文字列クラスのメンバー関数ではないのはなぜですか?

分類Dev

Delphiでコンストラクタパラメータが正しくないのはなぜですか?

分類Dev

メンバーへの参照がC ++に存在しないのはなぜですか?

分類Dev

正しい初期化を使用しない限り、__ dict__にクラスメンバーが含まれないのはなぜですか?

分類Dev

ネストされたクラスのメンバー関数が完全な型を必要としないのはなぜですか?

分類Dev

SFINAE(enable_if)がクラステンプレートのメンバー関数で機能しないのはなぜですか?

分類Dev

サブクラス変数が存在しないのはなぜですか?

分類Dev

C ++の空のクラスにバイトアライメントがないのはなぜですか?

分類Dev

バックグラウンドでサービスが機能しないのはなぜですか?

分類Dev

C ++コンストラクターが新しいメンバー変数を追加できないのはなぜですか?

分類Dev

インストーラーが別の存在しないMSIを検索するのはなぜですか?

分類Dev

スクリプトにカメラが存在しないのはなぜですか?

分類Dev

速記メンバーの初期化の現在のコンテキストに名前が存在しないのはなぜですか?

分類Dev

クラスの静的データメンバーとしてビットフィールドが許可されないのはなぜですか

分類Dev

クラスメンバーとしてのofstreamがスレッドに渡されないのはなぜですか?

分類Dev

Testクラスがメインクラスを正しくプルしないのはなぜですか?

分類Dev

対応するメンバーがメンバー関数ポインターに正しくアクセスしないのはなぜですか?

分類Dev

クラスのメンバー関数でQThreadを初期化できないのはなぜですか?

分類Dev

クラスのメンバー関数でQThreadを初期化できないのはなぜですか?

分類Dev

クラスのコンストラクターで宣言されたプロパティが存在しないのはなぜですか?

Related 関連記事

  1. 1

    Swiftがクラスのメンバーごとの初期化子を提供しないのはなぜですか?

  2. 2

    基本クラスのメンバーが、コンストラクターで最初に初期化された値を保持しないのはなぜですか?

  3. 3

    なぜC ++は、派生クラスが初期化リストで基本クラスのメンバーを使用することを許可しないのですか?

  4. 4

    同じステートメントがC ++のクラスメンバーで機能しないのはなぜですか?

  5. 5

    サブクラスメンバーが保護されていないのはなぜですか?

  6. 6

    c ++派生クラスオブジェクトにメンバーがないのはなぜですか?

  7. 7

    a =&14の&14が1つのステートメントしか存在しないのはなぜですか?

  8. 8

    内部クラスが静的メンバーを宣言できないのはなぜですか?

  9. 9

    コンストラクターがパラメーターを設定しないのはなぜですか?

  10. 10

    C ++ 11文字列の新しい関数(stod、stof)が文字列クラスのメンバー関数ではないのはなぜですか?

  11. 11

    Delphiでコンストラクタパラメータが正しくないのはなぜですか?

  12. 12

    メンバーへの参照がC ++に存在しないのはなぜですか?

  13. 13

    正しい初期化を使用しない限り、__ dict__にクラスメンバーが含まれないのはなぜですか?

  14. 14

    ネストされたクラスのメンバー関数が完全な型を必要としないのはなぜですか?

  15. 15

    SFINAE(enable_if)がクラステンプレートのメンバー関数で機能しないのはなぜですか?

  16. 16

    サブクラス変数が存在しないのはなぜですか?

  17. 17

    C ++の空のクラスにバイトアライメントがないのはなぜですか?

  18. 18

    バックグラウンドでサービスが機能しないのはなぜですか?

  19. 19

    C ++コンストラクターが新しいメンバー変数を追加できないのはなぜですか?

  20. 20

    インストーラーが別の存在しないMSIを検索するのはなぜですか?

  21. 21

    スクリプトにカメラが存在しないのはなぜですか?

  22. 22

    速記メンバーの初期化の現在のコンテキストに名前が存在しないのはなぜですか?

  23. 23

    クラスの静的データメンバーとしてビットフィールドが許可されないのはなぜですか

  24. 24

    クラスメンバーとしてのofstreamがスレッドに渡されないのはなぜですか?

  25. 25

    Testクラスがメインクラスを正しくプルしないのはなぜですか?

  26. 26

    対応するメンバーがメンバー関数ポインターに正しくアクセスしないのはなぜですか?

  27. 27

    クラスのメンバー関数でQThreadを初期化できないのはなぜですか?

  28. 28

    クラスのメンバー関数でQThreadを初期化できないのはなぜですか?

  29. 29

    クラスのコンストラクターで宣言されたプロパティが存在しないのはなぜですか?

ホットタグ

アーカイブ