C++函数调用之静态成员函数
来源:互联网 发布:小鲁是什么软件 编辑:程序博客网 时间:2024/06/08 07:30
首先,定义如下类A:
class A{private: static int val_s;public: static int getVal(){cout << "call getVal in A..." << endl;return val_s;}};
我们可以看到,上述类的定义中包含静态成员变量val_s 和静态成员函数getVal() 。
对于静态的成员变量,一般将其声明为non-public,也就意味着在类外如果需要存取该成员变量的话,我们需要提供成员函数接口。
另一方面,静态成员变量是独立于类的对象的,是所有的类的对象共享的部分,也就意味着,如果有一个这样的函数来操作静态成员变量的话,那么这个函数是没有隐含的this指针的,这与一般的成员函数是不一样的(一般的成员函数是有this指针的),于是static成员函数应运而生。
值得注意的是,这样的static成员函数必须满足如下的要求:
1 不能操作非staitc的成员变量
2 不能声明为const , volatile 或者是 virtual。
3 不需要经由类的对象来调用。(虽然使用类的对象来调用也是合法的)。
#include <bits/stdc++.h>using namespace std;class A{private: static int val_s;public: static int getVal(){cout << "call getVal in A..." << endl;return val_s;}};int A::val_s = 4;int main(void){ cout << ((A *)0)->getVal() << endl; //构造一个临时的对象来调用static函数 A a; cout << a.getVal() << endl; //通过类的对象来访问 cout << A::getVal() << endl; //通过类的作用域来访问 return 0;}
2 0
- C++函数调用之静态成员函数
- [C++] 静态成员函数
- 静态成员函数调用非静态成员
- 普通成员函数调用静态成员数据
- C++ 静态成员函数调用非静态成员函数方法
- 静态函数只能调用静态成员
- C++static静态成员函数
- 【C++】静态成员函数小结
- C++:静态类成员函数
- 静态成员函数调用非静态成员变量
- 静态成员函数调用非静态成员变量
- 用静态成员函数调用非静态成员变量
- 静态成员函数调用非静态成员变量
- 静态成员函数调用非静态成员变量
- 静态成员函数调用非静态成员变量
- 静态成员函数调用非静态成员变量
- 用静态成员函数调用非静态成员变量
- 静态成员函数调用非静态成员变量
- poj 2195(KM算法模板)
- vim+ctags
- nyoj606ACM之路
- linux Kernel 添加 ZRAM 支持
- JVM调优总结
- C++函数调用之静态成员函数
- 图像处理方面期刊
- 1409061046-hd-The 3n + 1 problem
- Tomcat配置加密连接器
- 用Eclipse tomcat新建一个JSP页面(一)
- 关于doccms在linux平台无法登陆后台的问题
- ZOJ 3502 Contest (状态压缩+DP , py大法好)
- Matlab实例学习-----------格式化文本 (写) 操作
- 在这里开始新生活