const 函数 是成员函数 还是全局函数
时间: 2023-12-31 10:07:17 浏览: 28
const 是 C++ 中的一个关键字,用来修饰数据类型、指针、函数等,表示它们是常量。在这里,const 并不是函数的类型,因此不能说 const 函数是成员函数还是全局函数。
在 C++ 中,const 成员函数是一种特殊的成员函数,它被声明为 const 类型,表示该函数不会修改对象的状态。const 成员函数可以被 const 对象调用,也可以被非 const 对象调用,但是非 const 对象调用 const 成员函数时,只能调用该函数的 const 版本。例如:
```c++
class Example {
public:
void func() const {
// const 成员函数
}
void func() {
// 非 const 成员函数
}
};
int main() {
const Example ex1;
ex1.func(); // 只能调用 const 版本的 func
Example ex2;
ex2.func(); // 调用非 const 版本的 func
const Example& ex3 = ex2;
ex3.func(); // 只能调用 const 版本的 func
return 0;
}
```
在上面的例子中,我们定义了一个类 Example,其中包含两个名为 func 的函数,一个是 const 成员函数,一个是非 const 成员函数。在 main 函数中,我们分别定义了三个对象 ex1、ex2 和 ex3,其中 ex1 是 const 对象,ex2 是非 const 对象,ex3 是 ex2 的一个 const 引用。
当我们调用 ex1.func 时,只能调用 const 版本的 func;而当我们调用 ex2.func 时,只能调用非 const 版本的 func;当我们调用 ex3.func 时,也只能调用 const 版本的 func。