我重载运营商的数据结构,所以我有标准的函数声明:运算符重载C++:只写版本
T & operator[](int i); //used for regular objects
const T & operator[](int i) const; // used for const objects
所以我想要做的是有运营商[双版本]用于常规对象:当使用operator []写入而不是读取时,会执行一些不同的操作。
我一直在阅读,这是可能的,但我还没有看到任何代码。
我见过很多次这个问题,我看过答案''operator [] const'版本用于阅读“ - >但这不是真的;它仅用于类的const实例化。
任何人都可以提供指导检测写事件触发不同的行为? 也许是复制构造函数中的技巧?
AFAIK你可以在C做到这一点的唯一途径++是返回一个代理值。 – milleniumbug 2014-09-23 22:00:36
在C++中重载操作符\ [\],但为了防止\ [i \] = one \ _special \ _specific \ _value](http://stackoverflow.com/questions/20105097/overloading-operator-in -c-but-to-prevent-ai-one-special-specific-value) – Deduplicator 2014-09-23 22:05:58
或者这个:[Vector,proxy class和C++中的点运算符](https://stackoverflow.com/questions/7182963/vector-proxy -class-and-dot-operator-in-c) – Deduplicator 2014-09-23 22:06:47