当我取消引用一个指针并分配给它时,它会更改指针指向的内容,而不需要operator=
它指向的内容。我制作了这个程序来证明它:
#include <iostream>
struct S
{
void operator =(int)
{ x = 5; }
operator int*()
{
return &x;
}
int x;
};
std::ostream& operator <<(std::ostream& out, S const& s)
{
return out << s.x;
}
int main()
{
S s;
int *x = s;
*x = 10;
std::cout << *x;
}
这将打印 10。这样*x = 10
做不会修改对象x
指向的内容。我怎样才能做到这一点?(欢迎使用 C++11 解决方案)