如题, 考虑一个成员函数要加const的话, 如果这个成员函数在类内定义, 当然一个const就解决问题. 但是如果希望类内声明类外定义的话, 这个const是应该加在声明处还是定义处, 或者是两个地方都要加?
另外同样的问题对于inline, c++ primer上说inline在声明处和定义出同样有效, 但是最好加在定义出, const是否也是这样呢?
天蓬老师2017-04-17 14:20:09
定義和聲明分開的時候,定義需要匹配到聲明。
而const修飾符是影響到函數匹配。
也就是說 int a() const
和int a()
是兩個成員函數。
你類外定義的時候要么都加,要么都不加,當然也可以把兩個都聲明上去,在調用的時候會根據調用者身份的不同而選擇是否調用const版本。
iniline不影響函數匹配,它指定的是函數是否內聯展開。