2012-11-16 69 views
0

是否可以在C++ stl項目中使用String.cpp和String.h創建String類?stl C++項目中的字符串類

String.h 

#include <string> 
class String { 
public: 
    static std::string Replace(const std::string& str, const std::string& oldValue, const std::string& newValue); 
}; 

有編譯錯誤,除非類被重命名爲別的東西一樣包含字符串

+2

具體有什麼編譯錯誤? – Dan

+1

'靜態類...'不會做你認爲它做的事情(但它與你的問題無關)。除此之外,使用靜態方法創建這樣的類是C++中糟糕的風格。 –

+0

@KonradRudolph我還發現這對於這種特殊情況非常有用:添加分組在類中的方法(僅包含靜態方法)以增強字符串操作。我和我的同事們不想爲此引入額外的命名空間(我們在Common :: Utilities中放置了這樣的類)。另外我們聲明瞭默認構造函數和這些類的析構函數,使其更加清晰,它們是「靜態的」。 –

回答

4

不是隻有靜態成員的類,而是使用C++中的名稱空間。

#include <string> 

namespace String { 
    std::string Replace(const std::string& str, const std::string& oldValue, const std::string& newValue); 
}; 
3

您需要從類聲明中刪除靜態和您發佈的代碼工作就好了呢。

+0

在第一眼看不到。這可能是正確的答案。 –

+0

對不起,這是我的錯,沒有在原始文件中的靜態 –

+0

所以張貼錯誤然後;) –