2013-11-06 3 views
0

Есть ли какой-либо оператор, который может быть перегружен, чтобы объект мог быть уведомлен, когда ему назначена ссылка. Например:Перегрузки оператора для задания ссылки

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?? 

Я понимаю, что, будучи в состоянии сделать это, вероятно, рецепт какой-то будущей катастрофы, но это, кажется потенциально полезным для отладки и трассировки. (Попытка отбить неизбежные «то, что вы пытаетесь достичь» ответов. Я не пытаюсь решить какую-либо конкретную проблему.)

+0

Вы пытаетесь захватить 'lhs.operator = (const T & rhs)' как явно противоположный 'lhs.operator = (const T rhs)'? – kfsone

ответ

2

Нет, это невозможно. Для создания ссылки не используется какой-либо конструктор. Ссылка - просто псевдоним.

+0

Я тоже ничего не могу найти. Поскольку это неудовлетворительно, я думаю, что это «решение». – jdo

Смежные вопросы