gpt4 book ai didi

c++ - 为字符串类重载 <<

转载 作者:行者123 更新时间:2023-11-28 03:24:53 30 4
gpt4 key购买 nike

我有:

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 *”

最佳答案

你需要让它成为一个非成员函数,并把一个String8*作为第一个参数:

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

顺便说一句,为了给自己省一个星号,这似乎是一件相当有问题的事情。

关于c++ - 为字符串类重载 <<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393066/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com