在XCode中定义静态类变量时出现C++ Duplicate Symbol错误,通常是因为静态变量在多个编译单元中被重复定义导致的。为了解决这个问题,可以采用以下方法:
static
关键字,这样该变量只能在当前编译单元中可见,不会与其他编译单元中的同名变量冲突。// MyClass.cpp
#include "MyClass.h"
static MyClass::StaticVarType MyClass::staticVar;
static
关键字,并在单独的一个编译单元中定义该变量。这样,所有编译单元都可以访问该变量,但是需要确保只有一个定义。// MyClass.h
class MyClass {
public:
static int staticVar;
};
// MyClass.cpp
#include "MyClass.h"
int MyClass::staticVar = 0;
// MyClass.h
template<typename T>
class MyClass {
public:
static T staticVar;
};
template<typename T>
T MyClass<T>::staticVar;
通过以上方法,可以避免C++ Duplicate Symbol错误的出现。在实际开发中,应根据具体情况选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云