#include<iostream>
using namespace std;
//静态成员就是在成员变量和成员函数前加上关键字static,成为静态成员
//静态成员变量:所有对象共享同一份数据
//在编译阶段分配内存
//类内声明,类外初始化
//静态成员函数:***所有对象共享一个函数****
//****静态成员函数只能访问静态成员变量***
class A
{
public:
static int m_A;//类内声明
int m_B;//非静态成员变量
static void func()
{
m_A = 100;//静态成员函数可以访问静态成员变量
//m_B = 13;//静态成员不可以访问非静态成员变量,因为静态函数可以通过类名直接访问,
//不需要通过对象,故不能确定是哪个对象的非静态成员
cout << "static void func调用" << endl;
func2();//类内可访问静态成员变量
}
//静态成员函数也是有访问权限的
private:
static void func2()
{
cout << "static void func2函数调用" << endl;
}
};
int A::m_A = 0;//*****类外初始化,若未在类外初始化,则会出错********
void test10()
{
//1.通过对象访问
A a;
a.func();
// a.m_A = 10;
//2.通过类名访问
A::func();
// A::func2();类外不能访问私有静态成员函数
}
int main()
{
test10();
system("pause");
return 0;
}
网友评论