`void f1(const Class& c)`和`void f2(Class const& c)`有什么区别?

时间:2011-09-27 22:05:23

标签: c++

以下这些功能之间有什么区别(查看关键字const)?

void f1(const Class &c)

void f2(Class const &c)

4 个答案:

答案 0 :(得分:5)

没有区别。这两个版本是可以互换的。

答案 1 :(得分:5)

const Class&Class const&之间没有区别;同样,const Class*Class const*之间没有区别。两者都表示指向常量Class实例的引用/指针。

然而,Class* const是一个完全不同的野兽。这是一个指向非const Class实例的const指针。

答案 2 :(得分:4)

(迂腐的答案):

不同之处在于名称。

名称f1将与f2不同 - 即使在修改后

签名完全相同,否则没有区别

答案 3 :(得分:2)

他们根本没有什么不同。请查看this page中的第18.6和18.8点以获取更多信息。