简简单单学习Cpp-静态成员
简单介绍
- 静态成员变量的生命周期是整个程序 作用域在类内部
class Maker {
public:// 静态成员变量的生命周期是整个程序 作用域在类内部static int a;
};
- 静态成员变量需要在类内部进行声明,但是需要在类外部进行初始化
# define _CRT_SECURE_NO_WARNINGS
#include <iostream>using namespace std;class Maker {
public:// 静态成员变量的生命周期是整个程序 作用域在类内部static int a;
};int Maker::a = 10000;// 初始化静态成员变量void test() {Maker m;cout << m.a << endl;
}int main() {// 封装test();system("pause");return EXIT_SUCCESS;
}
- 静态成员变量属于类,不属于对象,是所有对象进行共享 可以使用类进行访问
# define _CRT_SECURE_NO_WARNINGS
#include <iostream>using namespace std;class Maker {
public:// 静态成员变量的生命周期是整个程序 作用域在类内部static int a;
};int Maker::a = 10000;// 初始化静态成员变量void test() {Maker m;cout << m.a << endl;// 静态成员变量属于所有的类cout << Maker::a << endl;
}int main() {// 封装test();system("pause");return EXIT_SUCCESS;
}
- 静态成员函数
注意静态成员函数智能访问静态成员变量 不可以访问其他成员变量
# define _CRT_SECURE_NO_WARNINGS
#include <iostream>using namespace std;class Maker {
public:// 静态成员变量的生命周期是整个程序 作用域在类内部static int a;static void seTa(int aa) {a = aa;cout << "aa" << aa << endl;}
};int Maker::a = 10000;// 初始化静态成员变量void test() {Maker m;cout << m.a << endl;// 静态成员变量属于所有的类cout << Maker::a << endl;Maker::seTa(12393872901);
}int main() {// 封装test();system("pause");return EXIT_SUCCESS;
}
- const修饰的静态成员变量最好在类内部初始化
class Maker4 {
public:// const修饰的静态成员变量可以在内部初始化 当然也可以在外部初始化const static int a = 20;const static int b;
};const int Maker4::b = 10000;