关于下标操作符重载,书C++ Primer例子错误,求解答
C++ Primer 第四版
14.5. 下标操作符
下面是书本源码,稍作修改,只为初始化。。
发现两次都是调用的 int& Foo::operator[] (const size_t index)
何时才能调用 const int& Foo::operator[] (const size_t index) const
求正解。
14.5. 下标操作符
下面是书本源码,稍作修改,只为初始化。。
class Foo
{
public:
Foo()
{
for (int i = 0; i < 10; i++)
{
data.push_back(i);
}
}
int &operator[] (const size_t);
const int &operator[] (const size_t) const;
// other interface members
private:
std::vector<int> data;
// other member data and private utility functions
};
// 下标操作符本身可能看起来像这样:
int& Foo::operator[] (const size_t index)
{
return data[index]; // no range checking on index
}
const int& Foo::operator[] (const size_t index) const
{
return data[index]; // no range checking on index
}
int _tmain(int argc, _TCHAR* argv[])
{
Foo a;
a[0] = 145; // 作左值
int n = a[0]; // 作右值
return 0;
}发现两次都是调用的 int& Foo::operator[] (const size_t index)
何时才能调用 const int& Foo::operator[] (const size_t index) const
求正解。
...全文
相关推荐
C++Primer课后习题解答完整版.pdf
例如,缺少左操作数的错误可以通过在"<<"操作符前加上std::cout来解决。8.
cpp_primer5_solution:我对“C++ Primer 5th”一书的解答
在“cpp_primer5_solution-master”这个项目中,作者提供了对书中习题的解答,这些解答涵盖了以上提到的各个知识点,并可能深入到更多细节,如内存管理、模板元编程、并发编程、C++标准库的高级用法等
C++ Primer Plus 第6版 中文版课后代码习题答案
书中会详细解释这两者的使用和作用。4. **操作符重载**:C++允许对已有的操作符进行重载,使其能用于自定义类型,这是实现用户友好接口的一种方式。5.
C++Primer课后习题解答 第五版 第四版
"C++Primer课后习题解答,涵盖了第五版和第四版中的大量习题,适合学习C++的类容,包括基础语法、数据类型、标准库、数组、指针、表达式、语句、函数、IO库、容器、算法、类、复制控制、重载操作符、
c++primer第四版习题解答
在C++中,“<<”是一个二元操作符,需要一个左操作数和一个右操作数。在这个例子中,第一行的最后一个“<<”和第二行的第一个“<<”之间没有左操作数,导致语法错误。


