2016-03-28 7 views
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にデフォルトパラメータがありません

私はヘッダーファイルにデフォルト値を割り当てることができますが、これは正しいと思います。なぜこのエラーが表示されていますか?

このエラーをクリアするにはどうすればよいですか?

+0

まず、どのような文字セットを許可されていません正確に同じタイプが異なるデフォルトパラメータあなたが持つ2つの機能を持っていますのためにコンパイル? MBCSまたは "None"の場合、コードは 'LPCSTR == LPCTSTR'以降コンパイルされません。狭い文字列と広い文字列を区別したい場合は、 'LPCWSTR'と' LPCSTR'をそれぞれ1つずつ作成してください。 – PaulMcKenzie

答えて

4

LPCTSTRは、const TCHAR文字列です。 TCHARは、charまたはwchar_tのいずれかです。

LPCSTRは、const char文字列です。

のでTCHARならば、charLPCTSTRLPCSTRに解決されているが、同じタイプであり、今、あなたは