在学习C++的面向对象编程思想时,在面向对象继承的特征里,除了类与对象的概念,类的构造函数和析构函数以及对类实例化对象的一些操作外,一个重要的概念就是静态成员变量(静态数据成员)和静态成员函数。
问题:1.什么是静态成员变量?
2.什么是静态成员函数?
3.深度剖析及应用
静态成员变量:
1.所有对象共享同一份数据
2.在编译阶段分配内存
3.类内声明,类外初始化
静态成员函数:
1.所有的对象共享同一个函数
2.静态成员函数只能访问静态成员变量
代码示例:
#include<iostream> using namespace std; class Person{ public: static void show(){ m_a=10; cout<<m_a; cout<<"函数的调用"<<endl; } static int m_a; }; int Person::m_a=9;//静态数据成员类内定义类外初始化 int main() { //静态成员函数的调用方法 //通过对象访问 Person p; p.show(); //通过类名访问 Person::show(); return 0; }
思考案例:类的构造函数的访问权限可以设置为私有吗??