1
我有一個類頭文件象下面這樣:重新定義默認參數:參數2
TString.h
namespace Utils
{
class UTILS_API TString
{
public:
TString(const TString& tstr);
TString(LPCTSTR tstr = NULL, int len = -1);
TString(LPCSTR str, int len = -1);
..........................
}
它給錯誤:錯誤C2548: 'utils的:: TString :: TString':缺少參數2的默認參數
我想,我可以在頭文件中分配默認值,這是正確的;那麼爲什麼這個錯誤顯示?
如何清除此錯誤?
首先,什麼字符集完全相同的類型,但不同的默認參數是你們兩個功能編譯?如果它是MBCS或「None」,那麼您的代碼將不會編譯,因爲「LPCSTR == LPCTSTR」。如果你想區分窄字符串和寬字符串,你應該製作一個'LPCWSTR'和另一個'LPCSTR'。 – PaulMcKenzie