我有一个类 X,我的目标是有一个表示“坏对象”的特殊 var,以便实现一个返回X&
.
例如:
//X.h
class X{
private:
int i;
X(const X& other){} //private COPY CTOR
public:
const static X& badObject;
X(int a) : i(a) {} // the only CTOR
const X& f(){
if(true)
//return some valid X object
else
return badObject;
};
唯一的 CTOR 不是默认的 CTOR,并且 COPY CTOR 是私有的(我不想允许对此对象进行处理。)Operator=
也是私有的。
现在,当我尝试初始化时。X.cpp 中的 badObject 我得到一个错误:
//X.cpp
#include "X.h"
const X& X::badObject = X(1);
因为 COPY CTOR 是私有的。
我在这里做错了什么?我应该怎么做才能解决这个问题?
谢谢!