这是您如何返回对索引为i的动态分配数组元素的引用吗? int& dynamic_array::operator[](unsigned int i) { if (i >= get_size()) throw exception(SUBSCRIPT_RANGE_EXCEPTION); else return array[i];} 最佳答案 通过尝试以优雅的方式总结注释,您可以使用类似以下的内容:#include <stdexcept>#include <string>int& dynamic_array::operator[](size_t index){ if (index >= size) throw std::out_of_range{"Index too large " + std::to_string(index)}; return elements[index];}一种。 size_t确保0或正索引b。在这些情况下,out_of_range是我们的标准异常(exception)C。异常消息是有益的如果我们想更进一步,通常也需要const和非const版本。为了避免代码重复,您可以这样移动:#include <stdexcept>#include <string>#include <utility>const int& dynamic_array::operator[](size_t index) const{ if (index >= size) throw std::out_of_range{"Index too large " + std::to_string(index)}; return elements[index];}int& dynamic_array::operator[](size_t index){ return const_cast<int&>(std::as_const(*this)[index]);}(std:as_const()属于C++ 17,否则请考虑static_cast )关于c++ - 返回引用在C++中的动态数组的元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34823079/
10-16 18:55