是否可以通过 const 说明符重载函数。也就是说,我们有两个函数,一个是常量,另一个不是,我们能说常量函数重载了非常量函数吗?
最佳答案
是和否
这取决于您放置 const
说明符的位置。
在定义成员函数时,这是可能的(是的部分):
int f() { /*code*/ } //invoke this function on non-const object
int f() const { /*code*/ } //ok : invoke this function on const object
请注意,在没有 first 函数的情况下,即使是非常量对象也会调用第二个函数(即 const
成员函数)并且在没有 < em>second 函数,您将无法在 const
对象上调用第一个函数!
但这是不可能的(No-part):
int g() { /*code*/ }
const int g() { /*code*/ } //error: redefinition
无论它们是成员函数还是自由函数。
关于c++ - 可以通过 const 说明符重载函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19464116/