新闻详情

新闻详情

首页 / 资讯中心 / 详情

【C++】 类与对象 (三)(补充内容)

发布时间:2026/11/16 5:06:36来源:尧图网络
【C++】 类与对象 (三)(补充内容)
目录类型转换static 静态成员友元friend内部类匿名对象类型转换在原本的C语言中可以支持相对的类型的转换整形转换浮点型等C 内置了一个类型隐式转换对象但需要有内置类型为参数的构造函数补充构造函数如果在前面加上了explicit就不再支持隐式类型转换。类类型的对象之间也可以隐式转换需要相应的构造函数支持。class a { public: a(int x, int y) : _a1(x),_a2(y) {} a (int x) :_a1(x) {} int Get() const { return _a1 _a2; } private: int _a11; int _a21; }; class b { public: b(const a aa) : _b(aa.Get()) { } private: int _b0; }; int main() { a aa11; const a aa2 1; a aa3 { 2,2 }; b bb1 aa3;//类型转换 const b bb2aa3; return 0; }explicit 的作用static 静态成员一、核心本质不属于某个对象属于整个类普通成员每个对象独立一份拷贝 static 成员全类共享唯一一份内存不管创建多少对象、不创建对象都存在。存储位置全局静态存储区不在栈 / 堆程序启动分配、结束释放。二、静态成员变量 static 变量1. 声明与定义分离类内只是声明不分配内存类外必须初始化定义分配内存#include iostream using namespace std; class Person { public: int a; // 普通成员每个对象一份 static int num; // 静态成员 声明 }; // 类外初始化必须写 int Person::num 0; int main() { Person p1; Person p2; p1.num 100; cout p2.num endl; // 输出100共享同一份数据 // 无对象也能访问 cout Person::num endl; return 0; }2. 访问方式通过类名类名::静态变量推荐无对象也能用通过对象对象.静态变量/对象指针-静态变量3. 特殊const static 整型整型静态常量可类内直接初始化不用类外定义class A { public: const static int size 100; // int/short/char 允许类内赋值 // const static double pi 3.14; // 浮点不行仍要类外定义 };三、静态成员函数 static 函数1. 核心规则函数属于类无this指针关键区别普通成员函数只能访问静态成员静态变量 / 静态函数不能访问普通成员没有 this 拿不到对象普通变量同样支持 类名函数 () / 对象。函数 () 调用class Person { public: static int num; int age; // 静态函数 static void showStatic() { cout num endl; // ✅ 可以访问静态变量 // cout age; ❌ 报错无this不能访问普通成员 } void show() { cout num age; // 普通函数可以访问静态变量 } }; int Person::num 10; int main() { Person::showStatic(); // 无需创建对象直接调用 Person p; p.showStatic(); return 0; }2. 静态函数没有 this 指针原因this 是调用函数时传入当前对象地址静态函数不绑定任何对象不存在 this。四、static 成员的特点总结生命周期程序全程存在早于所有对象销毁晚于所有对象内存全类唯一多个对象共用一份初始化静态变量类外初始化const static int 除外静态函数限制仅操作静态成员无 this适用场景统计对象总数static count构造 、析构 --全局共享常量 / 配置工具函数无需实例化就能调用五、常见易错点忘记类外初始化 static 变量 → 链接报错静态函数读写普通成员变量 → 编译报错企图用this在静态函数内操作数据 → 报错误以为 static 成员随对象创建销毁 → 静态成员独立于对象存在友元friendprivate 等私有性不可访问的成员程序员不希望被别人访问但是极个别可以访问就设置了一个友元friend意思是其他人都不可以使用我的私有我指名道姓只能由他来访问我私有的空间。切记友元具有单向性。a-b不等于b-a;内部类定义定义在另一个类内部的类外层叫外部类内层是内部类。访问权限内部类能直接访问外部类所有成员包括 private外部类想访问内部类成员必须创建内部类对象。分类成员内部类外部类成员位置定义依赖外部类实例创建。静态内部类static 嵌套类加 static不依赖外部对象只能访问外部静态成员。局部内部类写在方法里仅当前方法可用。匿名内部类无类名用于快速重写方法。作用封装从属关系、实现多继承、简化回调 / 接口实现。友元关系内部类可以访问私有部分外部类外部类无法访问私有部分内部类匿名对象概括用完就释放没有变量名、临时生成、用完立刻销毁的对象。 语法类名(参数)class A{}; A(); // 匿名对象 A(10); // 带参匿名对象核心特点生命周期极短本行语句执行完马上析构释放。只适用于一次性使用不需要反复调用对象。可以直接调用成员函数A().func();两种特殊接收规则用普通对象接收匿名对象会拷贝构造匿名对象销毁变量留存A a A();用const 引用接收匿名对象延长生命周期到引用失效常用const A ref A();使用场景函数传参临时构造不定义变量函数返回值临时对象返回匿名只调用一次成员方法省去命名易错点// 不是匿名对象是函数声明 A a();
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉