重载数组下标运算符

时间:2014-10-03 16:09:01

标签: c++ arrays

有没有办法在C ++中重载数组下标运算符而不是在类中?我想在数组中读/写时调用用户定义的函数。

例如:

int* array = new int[10];
array[0] = 5;

在数组[0]中写入时,我想调用自己的函数。我知道可以通过重载operator [](例如,SafeArray类)在类中完成。

感谢。

1 个答案:

答案 0 :(得分:0)

你想要的是一个包装类,如:

template<typename T>
struct SubscriptWrapper {
    SubscriptWrapper(T* array) : array_(array) {};
    T& operator[](size_t index) { 
        // your magic goes in here
    };
    T* array_;
}