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