当前位置: 首页 > news >正文

C++(10)——类与对象(最终篇)

目录

static成员

概念

特性

友元

友元函数

友元类

内部类

匿名对象


经过这么多天的分享,C++的类与对象终于要结束了。结束也意味着C++快要入门了。

static成员

概念

声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化。

我们看到虽然_year在类中,但是_year不能再类中初始化,所以,我们要在类外初始化。

特性

1 静态成员为所有类对象所共享的,不是某个具体的对象,存放在静态区。

2 静态成员变量必须在类外定义,定义时不添加static关键字,类中只是声明。

3 类静态成员可以的类名::静态成员或者对象.静态成员来访问。

4 静态成员函数没有隐藏的this指针,不能访问任何非静态成员。

5 静态成员也是类的成员,受public等访问限定符的限制。

友元

友元函数

问题:我们现在需要重载<<,让我们使用<<可以直接打印出对象的所有值,但是我们重载后,发现了一个问题,那就是 d1和cout的位置反了。

这是问什么呢?因为重载函数的第一个参数是 this指针,默认是左操作数,所以才会和cout反过来。但是,如果我们构成全局的重载函数,会导致不在类内了。

所以,我们可以使用友元函数。

在类内声明时,加上 friend的关键字。

这样就可以了。

说明:

1 友元函数可以访问类的私有和保护成员,但不是类的成员函数。

2 友元函数不能用 const 修饰。

3 友元函数可以在类的任意地方声明,不受访问限定符限制。

4 一个函数可以拥有多个友元函数。

5 友元函数调用和普通函数调用相同。

友元类

友元类的所有成员函数都可以时另一个类的友元函数,都可以访问另一个类的任何成员。

Date 为 A 的友元类,可以访问A的成员。

注意:

1 友元关系是单项的,不具有交换性。就比如上面,Date是A的友元类,但是如果Date不声明A的化,A就不是Date的友元类。唐牛不等式秒了。

2 有缘关系不能传递。

3 友元关系不能继承。

内部类

概念:如果一个类A定义在另一个类B的内部,这个类A就B的内部类。

内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何访问权限。

所以,内部类就是外部类的友元,但外部类不是内部类的友元。

注意的是:如果一个外部类中含有内部类,计算该外部类的大小时,是不计算内部类的。

匿名对象

匿名对象就是用类创建对象时,不给对象名字。

注意:匿名对象的生命周期只有它对应的代码这一行,运行到下一行时,它的生命周期就结束了。

今天内容结束了。886

相关文章:

C++(10)——类与对象(最终篇)

目录 static成员 概念 特性 友元 友元函数 友元类 内部类 匿名对象 经过这么多天的分享&#xff0c;C的类与对象终于要结束了。结束也意味着C快要入门了。 static成员 概念 声明为static的类成员称为类的静态成员&#xff0c;用static修饰的成员变量&#xff0c;称之…...

NetApp FAS2750 和 FAS2820 简化分布式企业的存储

拥有分布式企业和多个办公位置的客户希望使用这些系统进行虚拟化&#xff0c;以及为大型 FAS 和 AFF 系统提供简单且经济高效的备份和灾难恢复。 NetApp FAS2750 的规格 非常适合需要轻松部署和简化运维的中小型企业。 • 每个 HA 对的最大原始容量&#xff1a;1.2 PB • 每个…...

Geogebra设置函数定义域

曲线方程设置范围 y 4x 0 / (-4 < y < 4) 函数设置范围 函数(e^x*(2x-1),-2.5,3/4)...

代码随想录刷题笔记 DAY 18 | 找树左下角的值 No.513 | 路经总和 No.112 | 从中序与后序遍历序列构造二叉树 No.106

Day 18 01. 找树左下角的值&#xff08;No. 513&#xff09; 题目链接 代码随想录题解 1.1 题目 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 示例 2: 输入…...

【algorithm】一个简单的PID工程 base 用于手生时候快速复习 用于设计模式 cpp语法八股 快速复习校验

写在前面 最近项目一直用matlab&#xff0c;防止手生整一个回忆工具使用的简单的pid demo&#xff0c;走一边流程&#xff0c;包括配工程debug看结果&#xff0c;复用之前记录的配置见我的bloghttps://blog.csdn.net/weixin_46479223/article/details/135082867?csdn_share_t…...

Python处理图片生成天际线(2024.1.29)

1、天际线简介 天际线&#xff08;SkyLine&#xff09;顾名思义就是天空与地面的边界线&#xff0c;人站在不同的高度&#xff0c;会看到不同的景色和地平线&#xff0c;天空与地面建筑物分离的标记线&#xff0c;不得不说&#xff0c;每天抬头仰望天空&#xff0c;相信大家都可…...

jsp服装穿搭推荐系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 游戏网上商城系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0…...

Opencv(C++)学习 之RV1126平台的OPENCV交叉编译

本文特点&#xff1a;网上已经有了很多opencv移植RV1106的文章&#xff0c;本文主要记录基于cmake-gui编译&#xff0c;碰到的报错&#xff0c;及解决报错问题的方法&#xff0c;同时简单总结一些配置项相关的知识。 一、环境&#xff1a; ubuntu18 x64 RV1126交叉编译工具链 …...

http和https区别

HTTP协议以明文方式发送内容&#xff0c;不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息&#xff0c;比如&#xff1a;信用卡号、密码等支付信息。https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式&#xff0c;用的端口也不一样&…...

富文本编辑器CKEditor4简单使用-05(开发自定义插件入门)

富文本编辑器CKEditor4简单使用-05&#xff08;开发自定义插件入门&#xff09; 1. CKEditor4插件入门1.1 关于CKEditor4插件的简单安装与使用1.2 参考 2. 开发自定义插件——当前时间插件2.1 创建插件文件目录结构2.2 编写插件原代码2.2.1 编写代码框架2.2.2 创建编辑器命令2.…...

chisel之scala 语法

Chisel新手教程之Scala语言&#xff08;1&#xff09; Value & variable Value是immutable的&#xff0c;当它被分配一个数据后&#xff0c;无法进行重新分配。用 val 表示。 Variable是mutable的&#xff0c;可以重复赋值。用 var 表示。示例如下&#xff1a; val a …...

React18构建Vite+Electron项目以及打包

一.先创建项目 cnpm create vite 选择React > JavaScript >cd react_vite > cnpm i >npm run dev 二.安装Electron依赖 指定版本相对稳定 cnpm i electron19.0.10 -D cnpm i vite-plugin-electron0.9.3 -D cnpm i electron-builder23.0.1 -D三.创建electron目录…...

Spark性能调优

Spark性能调优 executor内存不足用UNION ALL代替UNIONpersist与耗时监控用OR替换UNION ALL用JOIN替换IN executor内存不足 问题表现1&#xff1a;Container xx is running beyond physical memory limits. Current usage: xxx GB of x GB physical memory used; xx GB of x GB…...

flutter开发实战-Camera自定义相机拍照功能实现

flutter开发实战-Camera自定义相机拍照功能实现 一、前言 在项目中使用image_picker插件时候&#xff0c;在android设备上使用无法默认设置前置摄像头&#xff08;暂时不清楚什么原因&#xff09;&#xff0c;由于项目默认需要使用前置摄像头&#xff0c;所以最终采用自定义…...

LeetCode15. 三数之和

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 **注意&#xff1a;**答案中不可以包含重复…...

Docker搭建MySQL8主从复制

之前文章我们了解了面试官&#xff1a;说一说Binlog是怎么实现的&#xff0c;这里我们用Docker搭建主从复制环境。 docker安装主从MySQL 这里我们使用MySQL8.0.32版本&#xff1a; 主库配置 master.cnf //基础配置 [client] port3306 socket/var/run/mysqld/mysql.sock [m…...

【前端】日期转换

记录项目中需要处理的日期格式 默认vue2 初级版 将后端传来的数组 [2024/01/29 08:55:18, 2024/01/29 09:55:18, 2024/01/29 10:11:18]转为 [2024-01-29 08:55, 2024-01-29 09:55, 2024-01-29 10:11]方法 convertDateTimeFormat(arr) {var tempArr arr.map(function (dateT…...

Git 怎么设置用户的权限

在团队协作的软件开发中&#xff0c;对于版本控制系统Git来说&#xff0c;确保代码与数据的安全性至关重要。为了实现这一目标&#xff0c;Git提供了灵活且可定制的用户权限管理机制。下面将简单的探讨一下Git如何设置用户的权限&#xff0c;以及如何保护代码和数据。 用户身份…...

大端和小端模式介绍

介绍 “大端”和“小端”通常指的是字节序&#xff08;Byte Order&#xff09;的两种类型&#xff0c;也被称为端序&#xff08;Endianness&#xff09;。在多字节的数据类型&#xff08;如整数&#xff09;中&#xff0c;字节可以以不同的顺序存储&#xff0c;这影响了计算机…...

【vue】报错 Duplicate keys detected 解决方案

错误描述&#xff1a;Duplicate keys detected. This may cause an update error.错误直译&#xff1a;检测到重复的键。这可能会导致错误。错误原因&#xff1a;有相同父元素的多个子元素的v-for有相同的key值。 解决方法&#xff1a; return:{dataList:[{name:张三&#xf…...

30分钟搞定OpenClaw:Qwen3.5-9B镜像快速入门指南

30分钟搞定OpenClaw&#xff1a;Qwen3.5-9B镜像快速入门指南 1. 为什么选择Qwen3.5-9B镜像 去年我在尝试本地部署AI助手时&#xff0c;曾被复杂的依赖关系和CUDA版本冲突折磨得苦不堪言。直到发现星图平台的Qwen3.5-9B预置镜像&#xff0c;才真正体会到"开箱即用"的…...

Java RAG入门基础教程(非常详细),用LangChain4j构建问答系统看这篇就够了!

1. 引言&#xff1a;为什么需要 RAG 1.1 大模型的局限性 在使用大语言模型&#xff08;LLM&#xff09;时&#xff0c;我们常常遇到以下问题&#xff1a; ❌ 问题 1&#xff1a;模型不知道企业内部信息用户&#xff1a;我们公司的年假政策是什么&#xff1f;AI&#xff1a;抱…...

保姆级教程:在Win10的WSL2里,用Dify 1.9和Ollama 0.12.9搭一个本地的通义千问AI助手

零基础在Windows 10上打造专属AI助手&#xff1a;WSL2DifyOllama实战指南 你是否想过在自己的电脑上运行一个完全本地的AI助手&#xff1f;不需要昂贵的云端算力&#xff0c;不依赖网络连接&#xff0c;所有数据都在本地处理。今天我们就用Windows 10自带的WSL2功能&#xff0c…...

使用 Python 将 Excel 数据批量导入到数据库中(SQLite)

一、应用场景与方案优势适用场景企业 Excel 报表数据迁移至数据库持久化存储&#xff1b;自动化办公&#xff1a;定期将 Excel 导出数据同步到数据库&#xff1b;轻量级数据中台&#xff1a;多 Excel 文件整合入库&#xff0c;方便后续查询分析&#xff1b;4.测试数据构造&…...

汇川AM402 PLC控制IS620N伺服:手把手教你封装自己的轴控功能块(附完整工程)

汇川AM402 PLC控制IS620N伺服&#xff1a;从零封装轴控功能块的工程实践 在工业自动化项目中&#xff0c;伺服控制是最基础也最频繁使用的功能之一。想象一下&#xff0c;你正在开发一个包装产线控制系统&#xff0c;需要同时管理十几台伺服电机——每台电机都需要重复编写使能…...

保姆级避坑指南:在只有一台能上网的服务器上,搞定Proxmox VE 7.0三节点集群和Ceph存储

混合网络环境下Proxmox VE集群与Ceph存储的实战部署指南 在企业的IT基础设施部署中&#xff0c;网络环境往往存在各种限制。特别是在安全要求较高的场景下&#xff0c;服务器节点可能被划分为不同的网络区域&#xff0c;仅有少数节点能够直接访问互联网。这种混合网络环境给Pro…...

【电商PHP高并发订单处理黄金法则】:20年架构师亲授5大防超卖、零重复、秒级响应的实战方案

第一章&#xff1a;电商PHP高并发订单处理的底层挑战与认知重构在亿级日活的电商场景中&#xff0c;PHP 传统同步阻塞式订单流程在秒杀、大促等峰值时刻频繁遭遇超卖、库存错乱、数据库连接耗尽与事务死锁等问题。这些表象背后&#xff0c;是开发者对 PHP 运行模型、MySQL 事务…...

1篇1章4节:生成对抗网络GAN和图像生成领域的StyleGAN

近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;特别是在计算机视觉领域&#xff0c;生成对抗网络&#xff08;Generative Adversarial Network&#xff0c;GAN&#xff09;推动了图像生成技术的巨大进步。从早期的基本GAN架构&#xff0c;到渐…...

终极mdp教程:如何用命令行轻松创建精美Markdown幻灯片

终极mdp教程&#xff1a;如何用命令行轻松创建精美Markdown幻灯片 【免费下载链接】mdp A command-line based markdown presentation tool. 项目地址: https://gitcode.com/gh_mirrors/md/mdp mdp是一款基于命令行的Markdown演示工具&#xff0c;它让你能够直接在终端中…...

5个关键步骤:ComfyUI-Impact-Pack V8版本完整安装指南

5个关键步骤&#xff1a;ComfyUI-Impact-Pack V8版本完整安装指南 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: https://…...