我可以在C++中声明一个非成员函数const吗?

Sul*_*lla 10 c++ oop const function

我可以在C++中声明一个非成员函数(全局函数,可能是)作为const吗?我知道const关键字实际上应用于在成员函数中传递的隐式"this"参数.因为只有成员函数遵循"thiscall"调用约定,所以const可以应用于非成员函数吗?

撇开我试图通过声明非成员函数const来做的事情,编译器会报告错误吗?

ice*_*ime 18

不,只有非静态成员函数才有const资格.

你对const非成员函数有什么语义意义?如果要强制该函数不修改任何参数,只需通过const引用即可.

  • 我假设他想让编译器确保全局(const)函数不会修改任何全局变量。也就是说,由于这个问题被标记为“c++”和“oop”——只是不要这样做。在有意义的地方拥有一个全局(或静态类成员)对象是可以的,但是编写在其类实例范围之外具有副作用的函数并不是一个好主意。 (2认同)