C++中的友元的使用和静态成员变量以及静态成员函数
2021/9/29 20:41:05
本文主要是介绍C++中的友元的使用和静态成员变量以及静态成员函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、友元函数
1.定义在类的外面,可以访问类的保护和私有成员。不是成员函数。
2.友元可以是一个函数,叫友元函数。也可以是一个类,叫友元类。
3.友元类时,整个类及其所有的成员都是友元。
关键字:friend
4.作用:让类外数据突破访问权限的限制。
#include <iostream> using namespace std; // 定义一个类 class A{ double width; public: friend void print(A a); //函数显示 void set_print(double wid) { width = wid; } }; void print(A a) { cout << "width: "<< a.width<<endl; } int main() { A pos; //数据写入 pos.set_print(23.1); // 函数验证 print(pos); return 0; }
二、C++类 的静态成员
1. 静态成员分为 静态成员变量和 静态成员函数
2.静态成员变量
(1.)静态成员变量
静态成员变量在成员变量声明前,加static。
在类外初始化,默认初始化为0。而且调用默认构造函数
class Run{
public:
static int run_age; //静态变量
int run_user; // 实例变量
public:
func{
int run_local; // 局部变量
};
};
// 需要在类外进行初始化
int Run::run_age = 0;
(2)静态成员在类的所有对象中是共享的,使用时要用::(范围解析运算符)
3.静态成员函数
(1).是指在成员函数声明前加static,静态成员函数只能访问静态成员变量,不能访问成员变量。
静态成员函数与普通成员函数的区别:
- 静态成员函数没有 this 指针,只能访问静态成员(包括静态成员变量和静态成员函数)。
- 普通成员函数有 this 指针,可以访问类中的任意成员;而静态成员函数没有 this 指针。
class B{
public:
static int num;//静态成员变量
static void show(){......}//静态成员函数 静态成员函数是没有this的
};
// 类外初始化
int B::num = xxx;
#include <iostream> using namespace std; class B{ public: static int num; static int print() { return num; } void set_len(int c) { len = c; num ++ ; } private: int len; }; int B::num = 10; int main () { B pos; // 先输出查看静态的值 cout << pos.print() <<endl; // 改变参数, pos.set_len(5); cout <<pos.print()<<endl; // 静态的值发生了 改变 return 0; }
这篇关于C++中的友元的使用和静态成员变量以及静态成员函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验