如何使用重载函数运算符将元素添加到静态向量?

How to add elements to a static vector using an overloaded function operator?

所以我有一个带有重载函数运算符的简单 class。我也有一个静态向量。我试图通过函数运算符向向量添加值,但它似乎不起作用。

class ExampleClass
{
private:
    static std::vector<std::string> exampleVector;

public:
    void operator () (std::string input)
    {
        exampleVector.push_back(input);
    }
};

int main()
{
    ExampleClass exampleObject;
    exampleObject("Hello World!");
}

我得到的错误是 "unresolved external symbol":

error LNK2001: unresolved external symbol "private: static class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > ExampleClass::exampleVector" (?exampleVector@ExampleClass@@0V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A)

我不知道什么意思。但是我的代码似乎没有 static 关键字也能正常工作。那我在这里错过了什么?谢谢

您还需要在 class 之外定义静态数据成员:

std::vector<std::string> ExampleClass::exampleVector;