本文主要是介绍再探C++函数参数里的const, 处理 error : passing const as this,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前,一直知道函数参数里面的const的意思。但理解并不深刻。
void foo(const T&)
这是一种常见写法,看起来似乎没有任何问题,但往往难点就藏在细节里面。
如果 T 是int , bool ,其实也没事,怎么玩都行。
可是如果 T 是一个类类型呢?
当 T 是一个 类类型 的时候,我们要注意什么? 什么时候可以用const ,什么时候不能用const ?
今天,调程序就遇到这个问题,下面直接给结论:
【结论】: 如果传入的T是类类型,然后你如果要调用T类的成员函数,当你使用const(如上面写法) ,就必须确保你调用的成员函数不会改变这个T类的成员变量。即 以const 结尾修饰的函数:
void foo_of_T() const;
否则,如果你用const 修饰了参数T,然后你想调用的成员函数,不是以const结尾的,就会编译报错。
经典的报错信息,大概是这样的:error : passing const as "this"
这篇关于再探C++函数参数里的const, 处理 error : passing const as this的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!