【发布时间】:2016-03-16 11:18:00
【问题描述】:
我的 C++ 数组中有一个重载的 [ ] 运算符。我有两个:
ElType operator[](int position) const; //getter
ElType & operator[](int position); //setter
但是,我注意到如果我这样做:
std::cout << dynamicArray[4];
它只使用了setter,基本上只是忽略了getter。有没有办法让它使用吸气剂?问题是,我的 Getter 具有确保每次分配值时都会更改名为“size”的变量的代码。但是当我只获得价值而不改变它时,我不希望它真正触发。
getter 的代码是:
ElType DynArray::operator[](int position) const{
std::cout << "using getter" << std::endl;
return buffer_[position];
当时我已经尝试了很多东西,比如将 & 插入 getter,但这也不起作用。如果这很重要,getter 也高于代码中的 setter。
另外,在构造容量为 5 的动态数组时,让所有元素保持原样(基本上是随机值)是一种好习惯,还是应该执行一个循环将它们全部设置为空/零?
【问题讨论】:
标签: c++ operator-overloading constants