84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
如题, 考虑一个成员函数要加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不影响函数匹配,它指定的是函数是否内联展开。