C++ 引用赋值的运算符重载

C++ 引用赋值的运算符重载,c++,reference,operator-overloading,C++,Reference,Operator Overloading,是否存在可以重载的运算符,以便在为对象指定引用时可以使其知晓。例如: Foo f; Foo copy; copy = f; // Calls assignment operator Foo *pF = &f; // Calls operator& which can be overloaded Foo copy2(f); // Calls copy constructor explicitly Foo & refF = f; // Can f

是否存在可以重载的运算符,以便在为对象指定引用时可以使其知晓。例如:

Foo f;
Foo copy;
copy = f;        // Calls assignment operator
Foo *pF = &f;    // Calls operator& which can be overloaded
Foo copy2(f);    // Calls copy constructor explicitly
Foo & refF = f;  // Can f be made aware that this happened??

我意识到,能够做到这一点可能会导致未来的灾难,但它似乎对跟踪或调试有潜在的帮助。(试图避开不可避免的“你想要实现什么”的回答。我不是想解决任何具体问题。)

不,它不能。没有使用任何构造函数来构建引用。Reference只是一个别名。

您试图捕获
lhs.operator=(const T&rhs)
而不是
lhs.operator=(const T rhs)
?我也找不到任何东西。虽然这并不令人满意,但我想这是一个“解决方案”。