-2

我想从静态方法返回类 Foo 的第一个创建实例(在所有程序生命周期中实际上将创建一个实例)。这里的示例代码:

//。H

#pragma once
class Foo
{
    static Foo* _firstInstance;
public:
    Foo();
    ~Foo();
    static Foo* GetFirstFoo();
};

//.cpp
#include "stdafx.h"
#include "Foo.h"

Foo::Foo()
{
    _firstInstance = this;
}


Foo::~Foo()
{
}

Foo* Foo::GetFirstFoo()
{
    return _firstInstance;
}

但我得到了下一个错误:

Error   1   error LNK2001: unresolved external symbol "private: static class Foo * Foo::_firstInstance" (?_firstInstance@Foo@@0PAV1@A)  c:\Users\Brans\documents\visual studio 2013\Projects\testSt\testSt\Foo.obj  testSt

怎么了?我是 C++ 的新手,但我记得我从静态方法创建了类实例构造函数,没有问题。

4

1 回答 1

2

静态成员也必须在.cpp文件中定义:

Foo* Foo::_firstInstance;
于 2013-10-27T11:42:39.030 回答