很多情况下,使用const reference作为参数传入,进行函数处理。
举例如下: class TClass { public: TClass(int i = 1): value(i) {} int getIt() const { return value; } //解析点1 private: int value; };
//void print(TClass obj) { void print(const TClass& obj) { //解析点2 cout << obj.getIt() << endl; //解析点3 }
int main() {
TClass a(100);
print(a);
return 0;
}
正确使用const解析:
如果在TClass::getIt()成员函数没有申明为const的话,则直接在print()函数中使用const obj,将出现编译错误,是因为编译器不知道getIt()方法会不会改变obj这个对象,因为此函数参数对象申明为const。所以不让编译通过。
|