在上一篇文章中,我们讨论了 C++ 中的静态数据成员,我们讨论了静态数据成员可以通过成员函数访问,但该函数应该是静态成员函数
静态成员函数是一种特殊的成员函数,它只用于访问静态数据成员,不能通过静态成员函数访问任何其他普通数据成员。就像静态数据成员一样,静态成员函数也是一个类函数;它不与任何类对象相关联。
我们可以使用以下语法访问具有类名的静态成员函数:
class_name::function_name(perameter);
考虑这个例子:
#include <iostream>
using namespace std;
class Demo
{
private:
//static data members
static int X;
static int Y;
public:
//static member function
static void Print()
{
cout <<"Value of X:" << X << endl;
cout <<"Value of Y:" << Y << endl;
}
};
//static data members initializations
int Demo::X =10;
int Demo::Y =20;
int main()
{
Demo OB;
//accessing class name with object name
cout<<"Printing through object name:"<<endl;
OB.Print();
//accessing class name with class name
cout<<"Printing through class name:"<<endl;
Demo::Print();
return 0;
}
输出
Printing through object name: Value of X:10 Value of Y:20 Printing through class name: Value of X:10 Value of Y:20
在上面的程序中X
和Y
是两个静态数据成员和print()
是一个静态成员函数。根据C++中的静态规则,只有静态成员函数才能访问静态数据成员。非静态数据成员永远不能通过静态成员函数访问。
注意:内联函数永远不能是静态的。
相关用法
- C++ Stack push()用法及代码示例
- C++ Stack empty()用法及代码示例
- C++ Stack size()用法及代码示例
- C++ Stack emplace()用法及代码示例
- C++ Stack pop()用法及代码示例
- C++ String swap()用法及代码示例
- C++ String back()用法及代码示例
- C++ String append()用法及代码示例
- C++ String Assign()用法及代码示例
- C++ String begin()用法及代码示例
- C++ String size()用法及代码示例
- C++ String resize()用法及代码示例
- C++ String Find()用法及代码示例
- C++ String crend()用法及代码示例
- C++ String compare()用法及代码示例
- C++ String empty()用法及代码示例
- C++ String replace()用法及代码示例
- C++ String at()用法及代码示例
- C++ String insert()用法及代码示例
- C++ String clear()用法及代码示例
注:本文由纯净天空筛选整理自 Static member function in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。