C++常对象调用静态成员函数的例子
时间: 2023-05-13 11:07:22 浏览: 80
当一个常对象调用一个静态成员函数时,编译器会忽略常对象的常属性,因为静态成员函数不会修改任何对象的状态。因此,常对象可以调用静态成员函数,而不会引发编译错误。
以下是一个示例代码:
```c++
#include <iostream>
class MyClass {
public:
static void print() {
std::cout << "Hello, world!" << std::endl;
}
};
int main() {
const MyClass obj;
obj.print(); // 调用静态成员函数
return 0;
}
```
输出结果为:
```
Hello, world!
```
相关问题
C++类的常对象为什么可以调用静态成员函数,举个实际的例子
常对象可以调用静态成员函数是因为静态成员函数不依赖于对象,而是属于整个类的,所以即使对象是常对象也可以调用静态成员函数。举个例子,假设有一个类A,其中有一个静态成员函数static void func(),那么常对象可以这样调用:const A a; a.func();
C++中的非类成员的静态函数例子
以下是一个简单的非类成员的静态函数例子:
```cpp
#include <iostream>
static void printMessage() {
std::cout << "Hello, World!" << std::endl;
}
int main() {
printMessage();
return 0;
}
```
在这个例子中,`printMessage` 函数是一个非类成员的静态函数,它被定义为 `static`,以便只能在当前文件中使用。它不属于任何类,因此可以直接调用它,而无需创建任何对象。在 `main` 函数中,我们直接调用 `printMessage` 函数来输出消息。
需要注意的是,如果将 `static` 关键字从 `printMessage` 函数中删除,则该函数将变为非静态函数,此时它需要通过对象来调用。