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