小白求问关于类成员函数const T& 和T&的区别
在github上下代码自己看看学习,发现相当一部分代码都会有如下情况:
Point& Map::getPoint(const Pos &p) {
return content[p.getX()][p.getY()];
}
const Point& Map::getPoint(const Pos &p) const {
return content[p.getX()][p.getY()];
同名函数,写了两遍,一遍是const T&,一遍是T&。
想问一下这么做的理由是什么?
另外,返回的reference是const reference(引用不变)还是const_reference(引用所指的量不变)
还有就是,始终不是很懂,函数体前的const的作用。搜了一下,和对象有关但有点乱,没弄懂。希望大神能推荐几篇文章读一读(最好有示例,纯理论真的很懵)
感谢大神了!
Point& Map::getPoint(const Pos &p) {
return content[p.getX()][p.getY()];
}
const Point& Map::getPoint(const Pos &p) const {
return content[p.getX()][p.getY()];
同名函数,写了两遍,一遍是const T&,一遍是T&。
想问一下这么做的理由是什么?
另外,返回的reference是const reference(引用不变)还是const_reference(引用所指的量不变)
还有就是,始终不是很懂,函数体前的const的作用。搜了一下,和对象有关但有点乱,没弄懂。希望大神能推荐几篇文章读一读(最好有示例,纯理论真的很懵)
感谢大神了!
...全文
相关推荐
C++的const类成员函数
**const成员函数与非const成员函数的重载** - 同一函数名可以有const和非const两个版本,它们具有相同的参数列表,根据对象是否是const来决定调用哪个版本。
C++ 一般(普通)函数指针、类成员函数指针,用法区别,以及强制转换
这两种类型的指针在用法上有所区别,且类成员函数指针涉及到更复杂的面向对象特性。本文将深入探讨它们的区别以及如何进行强制转换。首先,让我们从一般函数指针开始。
C++类成员和数据成员初始化总结
总结来说,C++中的类成员和数据成员初始化是一个严谨的过程,需要理解构造函数的机制,以及`const`、`static`和数组的特殊性。正确初始化成员可以确保对象的有效性和代码的健壮性。
普通成员函数、类成员函数和类静态成员函数实例(VS2010)
类成员函数(通常指的是const成员函数): 类成员函数是指具有const修饰符的成员函数,它承诺不修改对象的状态。这样的函数可以用于读取对象的数据,但不能进行写操作。
C++ 中 const和static readonly区别
C++ 中 const 和 static readonly 区别C++ 中 const 和 static readonly 是两种不同的关键字,它们都用于修饰变量或字段,但是它们之间存在着本质的区别。


新手乐园
