在本章中,我们将研究:
- 静态数据成员
- 静态成员函数
- 静态物体
1.静态数据成员
以下是静态数据成员的属性:
- “静态”是用于创建静态数据成员的关键字。
- 当我们只希望在多个对象之间共享该数据成员的一个副本时,我们想要创建静态数据成员。
- 创建第一个对象时,该值将初始化为零。
- 范围在班级内
- 生命周期一直到程序执行。
- 您可以使用范围解析运算符初始化静态数据成员。
- You can also access the static variable in main function using scope resolution operator as “ 班级名称 :: static_variable_name”.
静态数据成员的示例:
#include <iostream> using namespace std; class MyClass { public: static int no_of_objects; //default constructor MyClass() { no_of_objects ++; } void get_object_count() { cout<<"The number of objects are = "<<no_of_objects<<endl; } }; int MyClass :: no_of_objects =0; int main(void) { cout<<"The number of objects are = "<<MyClass::no_of_objects<<endl; MyClass obj_1; obj_1.get_object_count(); MyClass obj_2; obj_2.get_object_count(); MyClass obj_3; obj_3.get_object_count(); return 0; }
输出:
The number of objects are = 0 The number of objects are = 1 The number of objects are = 2 The number of objects are = 3
2.静态成员函数
以下是静态成员函数的属性:
- “ static”是用于声明静态成员函数的关键字。
- 静态成员函数中将不存在“ this”指针。
- 静态成员函数可以在不创建对象的情况下进行访问。可以使用范围解析运算符来调用它。 “<class_name>::<static_member_function_name> ().
- 静态成员函数只能访问静态数据成员和静态成员函数。
- 您不能具有相同名称的静态和非静态成员函数。
例:
#include <iostream> using namespace std; class MyClass { public: static void myFunc() { cout<<"In myFun function"<<endl; } }; int main(void) { MyClass::myFunc(); return 0; }
输出:
In myFun function
3.静态对象
#include <iostream> using namespace std; class MyClass { public: void myFunc() { cout<<"In myFun function"<<endl; } }; int main(void) { static MyClass obj; obj.myFunc(); return 0; }
输出:
In myFun function
该网站上可用的教程列表:
C编程20+章 | C ++编程80+章 |
100多个编码问题 | 数据结构和算法85+章 |
系统设计20+章 | Shell脚本编写12章 |
4g LTE 60+章节 | 最常见的编码问题 |
5G NR 50+章 | Linux系统编程20+章 |