请考虑:
#include <iostream>
struct Item {
Item(int Value = 0, std::string AsoName = "NULL") : Value{Value}, AsoName{AsoName} {}
int Value;
std::string AsoName;
auto& operator->() {
if (/*what*/) {
return AsoName;
}
else {
return Value;
}
}
};
int main() {
Item a(10,"Name");
a.operator->() = "Other Name";
a.operator->() = 5;
}
字符串
我试图通过引用使用->
运算符更改Value
或AsoName
,但如何才能知道新值“Other Name”和5的类型?只是为了学习。
1条答案
按热度按时间bksxznpy1#
你搞反了。将
operator->
成员函数替换为以下内容:字符串
然后你可以做:
型