C++静态成员(静态成员变量、静态成员函数)与正常成员互相调用的权限问题
2016-05-14 22:26
357 查看
#include <IOSTREAM> using namespace std; /*静态成员(静态成员变量、静态成员函数)与正常成员间相互调用的访问权限问题: 静态成员不专属于某个对象,而是属于该类的所有对象,所有对象都可对其进行相关的操作;静态成员函数则只能使用静态的成员变量或成员函数(当然全局的除外); 而静态成员函数或变量不影响其继承和被使用的权限。*/ int kk = 0; class stu { public: static int num;//静态成语变量 stu(int y){u = num = y;}; stu(){u = 2;} void hh(){cout<<"hh"<<endl;} // static void put(){hh();u = u+2;}//错误;静态成员函数只能访问静态成员变量或静态成员函数,不可访问非静态的普通成员函数、成员变量。 static void out(){cout<<"num:"<<num<<endl;} protected: int u; private: }; int stu::num = 0;//对静态成员变量进行初始化,为其申请内存空间。 class stu1 :public stu { public: stu1(int y):stu(y){} stu1():stu(){} void out(){cout<<"num:"<<num+u<<endl;}//静态成员函数不影响非静态成员函数对其正常的使用。 protected: private: }; void main() { stu zhang(12); zhang.out(); zhang.~stu(); stu li; li.out();//虽然对象zhang已析构,但静态成员变量num的值不会被销毁,印证了“静态成员不专属于某个对象,该类所有的对象都可对其进行操作”。 stu1 liu(66); liu.out(); stu1 wang; wang.out(); } /* num:12 num:12 num:132 num:68 Press any key to continue */
相关文章推荐
- 关于vector在堆上还是在栈上的思考与vector.push_back()究竟放入的是什么
- C++走向远洋——48(项目一1、复数类中的运算符重载、类的成员函数)
- 17907955 2016-05-14 17:17:32 biss A - Summer Camp GNU C++11 Accepted 15 ms 2200 KB
- 第7周 C语言程序设计(新2版) 练习9/10 解释原理与大写变小写
- C++走向远洋——47(第十二周、运算符重载基础程序、阅读)
- C++数组在函数中的传递与返回
- C++之RAII惯用法
- essential c++ 练习题(1)
- C++子父类成员之间相互访问的权限分析
- C语言中关键字auto、static、register、const、volatile、extern的作用
- C/C++标准误导篇
- C++中模板类引入
- faster_rcnn c++版本的 caffe 封装,动态库(2)
- c++中string类成员函数的总结
- 第7周 C语言程序设计(新2版) 各类位运算符定义
- 关于C语言的问卷调查(补交)
- C++变量和基本类型
- C++_(矩阵)快速幂
- C++_FatMouse' Trade(贪心)
- 第7周 C语言程序设计(新2版) 例题 3个函数例题