gpt4 book ai didi

c++ - 指针包装器以便我可以重载运算符?

转载 作者:行者123 更新时间:2023-11-28 08:08:44 25 4
gpt4 key购买 nike

我有一个由指针返回的不可变字符串类(允许为空)。

我想重载 ImmutableString* == const char*。但是看起来我不能,因为左参数是一个指针,它必须是一个非指针。该函数确实处理比较 null 成员,我只是不能重载它。

我可以使用什么指针包装器以便我可以使用以便我可以进行我想要的重载?最好是标准的。我怀疑我可以轻松编写自己的代码,但我的直觉告诉我 boost 或 STL 有一个。

最佳答案

我不知道用于此的标准包装器,但从头开始编写一个应该不会太难。一个非常简单的看起来像这样:

class WrappedImmutableString {
private:
ImmutableString *value;
public:
WrappedImmutableString(ImmutableString *value): value(value);
char operator*() const { return value; } // dereference operator
bool operator==(const char *other) {...}
void delete() { delete value; }
};

但请注意,您需要将“delete myImmutableString”替换为“myImmutableString.delete()”。

话虽如此,我认为您尝试做的事情可能是一个坏主意

关于c++ - 指针包装器以便我可以重载运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624341/

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