0

私は持っています:

String8& operator<<(const String8& string2);

このため:

String8 s;
s << "533";

しかし、私はこれをしたいと思います:

String8* s;
s << "433";

* s << "433";またはする必要はありませんString8&String8* operator<<(const String8& string2);動作していないようです。私もそれをグローバル演算子のオーバーロードにしてみました...

何か案は?

演算子をグローバルにした完全なコードは次のとおりです。

class String8 
{
    public:
        String8(char array[]) { }
};

String8* operator<<(String8* string1, const String8& string2);

main()
{
    String8* s;
    s << "433"
}

コンパイラエラー:C2296:'<<':不正です。左のオペランドのタイプは' Base ::String8*'です。

4

1 に答える 1

2

非メンバー関数にしString8*て、最初のパラメーターとしてa を取る必要があります。

String8* operator<<(String8* target, const String8& string2);

ところで、これは、アスタリスクを 1 つ残すためだけに行うにはかなり疑わしいことのように思えます。

于 2013-01-18T05:46:01.067 に答える