C++学习之静态成员变量和静态成员函数
2021/9/17 22:05:16
本文主要是介绍C++学习之静态成员变量和静态成员函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员
静态成员变量
1、 所有对象共享同一份数据
2、 在编译阶段分配内存
3、 类内声明,类外初始化(重要)
4、静态成员变量也有访问权限,写在private 里,类外是访问不到的
#include<iostream> #include <string> using namespace std; class Phone { public: Phone()//默认构造 { } Phone(string name):phone_name(name)//初始化列表 { } string phone_name; }; class Person { public: Person() { } Person(int a, int b, int c,string d) : m_a(a), m_b(b), m_c(c), m_phone(d) //初始化列表 { } public: int m_a, m_b, m_c,m_d; Phone m_phone;//类内的成员变量可以为另一个类对象 static int A;//静态成员变量声明 }; int Person::A = 0; //静态成员变量初始化(类外初始化,类内声明) void main() { //两种访问静态成员变量的方式 Person p;//1、通过创建一个类对象访问静态成员变量 cout << "A=" << p.A<< endl; cout << "A=" << Person::A<< endl;//2、通过类名来访问,因为它本身也不属于某一个对象,所以对象是共享同一个静态数据的 }
静态成员函数
1、 所有对象共享同一个函数
2、静态成员函数只能访问静态成员变量
3、静态成员函数也有访问权限,写在private 里,类外是访问不到的
class Person { public: //静态成员函数特点: //1 程序共享一个函数 //2 静态成员函数只能访问静态成员变量 static void func() { cout << "func调用" << endl; m_A = 100; //m_B = 100; //错误,不可以访问非静态成员变量,因为无法区分是哪一个对象的成员 } static int m_A; //静态成员变量 int m_B; // 非静态成员变量 private: //静态成员函数也是有访问权限的 static void func2() { cout << "func2调用" << endl; } }; int Person::m_A = 10; void test01() { //静态成员变量两种访问方式 //1、通过对象 Person p1; p1.func(); //2、通过类名 Person::func(); //Person::func2(); //私有权限访问不到 } int main() { test01(); return 0; }
这篇关于C++学习之静态成员变量和静态成员函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南