1

基本的に、std::map 型の静的メンバーにエントリを追加するクラスで静的関数を呼び出したいと考えています。

class Foo
{
    private:
        static std::map<std::string, int, StringCompare> mymap;
    public:
        static bool addEntry(std::string id);
};

std::map<std::string, int, StringCompare> Foo::mymap;

static bool Foo::addEntry(std::string id)
{
    int a = 0;
    return (mymap.insert ( std::pair<std::string, int> (id, a))).second;
}

編集:質問をするのを忘れた D:

このコードをコンパイルすると、次のエラーが表示されます。

derp.hpp:24:41: error: cannot declare member function ‘static bool Foo::addEntry(std::string)’ to have static linkage [-fpermissive]

私は何をしますか?

4

1 に答える 1

2

元の「質問」には、これを使用します。

Foo::addEntry("myId");

忘れた質問については、staticキーワードを削除するだけです。

于 2012-10-04T08:14:43.420 に答える