我试图为方法(或构造函数)参数的默认值强加某种语义逻辑。这是我尝试过的:
#include <iostream>
#include <vector>
class Test
{
public:
static const std::vector<int> staticVector;
Test (const std::vector<int> &x = Test::staticVector) {}
};
int main ()
{
Test x;
return 0;
}
尽管 staticVector 相当多余,但由于 C++ 不允许将 NULL 作为 std::vector 的实例传递,我希望避免对构造函数 std::vector() 进行冗余调用,所以我想出了这种方法。 .
不幸的是,当我尝试编译它时,链接器会抛出这个错误:
error LNK2001: unresolved external symbol "public: static class std::vector<int,class std::allocator<int> > const Test::staticVector" (?staticVector@Test@@2V?$vector@HV?$allocator@H@std@@@std@@B)
我在这里想念什么?