0
我使用Visual Studio在我的SLN存在的一些项目:普通,交易在哪里添加越权操作者对<<枚举
在公共我在命名空间助手
namespace Helper{
template<T>
class Print{
template<T>
static PrintEnum(std::ostream &os, const std::string& prefix,const T& val){
os << prefix << ":" << val;
}
};
}
,并在工程商类打印存在一定的枚举文件Typedef.h象下面这样:
namespace Market{
enum Coin{USD,JPY,EUR};
}
和存在功能打印类平台象下面这样:
namespace Market{
void Platform::PrintTheBest(std::ostream &os){
Coin best = USD;
Helper::Print::PrintEnum(os, std::string("Best"),best);
}
}
我要重写< <打印枚举硬币象下面这样:
std::ostream& operator<<(std::ostream& , const Coin& coin){
.....
}
但我不知道在哪里添加的运营商代码。
在共同的项目硬币枚举不存在的,如果我在交易项目中添加了运营商,我得到的链接错误unresolve外部
不要这样写C++代码,它是一个Java-ISM。你的静态成员函数应该是类之外的函数。这也可以解决您在何处定义流式运算符的问题。 –
您的运算符是否在名称空间市场中定义?回覆。前面的评论:如果静态方法属于一个类,它们应该在该类中定义,以通用的面向对象的方式进行编码(运算符除外,按照惯例,这是按照herzl的方式定义的)。但这取决于编码人员的偏好。 – dwn
此外,如果您将其添加到.h中,它应该是内联的。 – dwn