下面的代码预计打印"kevin"但是,它的打印垃圾值.我已经检查了调试器."operator 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;
}
Run Code Online (Sandbox Code Playgroud) c++ ×1