我有:
String8& operator<<(const String8& string2);
为了这:
String8 s;
s << "533";
但我想这样做:
String8* s;
s << "433";
不必执行
* s << "433";
或String8&
。 String8* operator<<(const String8& string2);
似乎不起作用。我也尝试使其成为全局运算符重载...有任何想法吗?
以下是完整的代码,其中运算符为global:
class String8
{
public:
String8(char array[]) { }
};
String8* operator<<(String8* string1, const String8& string2);
main()
{
String8* s;
s << "433"
}
编译器错误:C2296:'<
最佳答案
您需要使其成为非成员函数,并以String8*
作为第一个参数:
String8* operator<<(String8* target, const String8& string2);
顺便说一句,这似乎是一个相当可疑的事情,只是为自己节省一个星号。