下面的代碼需要打印「kevin」 但是,它正在打印垃圾值。我檢查了調試器。由「operator char *」調用返回的指針無效。任何想法?「運算符char *」問題
class Wrapper
{
private:
char* _data;
public:
Wrapper(const char* input)
{
int length = strlen(input) + 1;
_data = new char[length];
strcpy_s(_data, length, input);
}
~Wrapper()
{
delete[] _data;
}
operator char*()
{
return _data;
}
};
int main()
{
char* username = Wrapper("kevin");
printf(username);
return 0;
}
我的第一個建議是隻使用std :: string,因爲你顯然使用C++。 – 2010-08-11 19:13:38
你爲什麼編輯出我添加的指針標籤? – James 2010-08-11 19:14:09
請記住,您通常應避免隱式轉換。 (當然,使用'std :: vector'或者'std :: string'等) – GManNickG 2010-08-11 19:34:43