【类与对象】——静态成员函数及静态成员变量范例编程(视频113)
范例要求:创建任意类,要求:
- 其中包含静态成员函数,静态成员变量;
- 静态变量初始化
- 静态函数用两种方法进行调用
注意事项:
- 静态成员函数被该类的所有对象共享;
- 成员变量类内定义,类外初始化;
初始化格式为数据类型 类名::静态成员变量名=初始值
例如:int person::m_A = 100;
- 只有
public
访问权限下的静态成员函数才可以被访问;
案例编程实现代码:
#include<string>
#include<iostream>
using namespace std;
class person
{
public:
static void func()//静态成员函数
{
m_A = 200;
m_B = 100;//错误,必须与特定对象相对,不能在所有对象共享的静态函数中进行初始化
cout << "静态成员函数的调用" << endl;
}
static int m_A;//静态成员变量
int m_B;
};
int person::m_A = 100;//静态成员变量初始化
//成员函数的访问
void test01()
{
//通过创建类对象访问
person p;
p.func();
//通过类名访问
person::func();
}
int main()
{
test01();
}
遇到的问题:
error LNK2001: 无法解析的外部符号 “public: static…”
静态成员变量类外初始化格式要正确;
访问该静态变量的静态成员函数的访问权限必须是公开的;