C++基础编程的学习2

news2024/9/23 17:15:39

has-a(组合关系)

在C++中,has-a关系是一种对象之间的组合关系,表示一个类的对象包含另一个类的对象作为其成员。

前向引用说明

在全局命名作用域中声明函数,可以避免递归调用时的函数重名问题。前向声明允许我们声明一个函数或类,而不立即定义它。

作用域

::全局命名作用域这样就可以调用和设计函数重名的全局要是,要不然就是递归调用

结果是

10

100

左值与右值

  • 左值(Lvalue):指可定位的(locatable)值,可以作为赋值的左边变量。
  • 右值(Rvalue):指可读取的(readable)值,通常作为赋值的右边表达式。

静态生存期

如果一个对象的生命周期与程序的执行期相同,那么它具有静态生存期。全局变量和静态变量就是具有静态生存期的例子。

匿名对象与右值

所有的匿名对象都是右值,因为它们没有名字,不能被再次引用。

这样不行

这样可以

这样不会改常量的值,只是引用常量的值

引用与数组

Vi不是数组只是在模仿数组的功能

对x修改并不会对修改数组里面的元素

像上图一样使用引用可以改变数组元素

this指针

this指针只在类的非静态成员函数中存在,指向调用成员函数的对象。静态成员函数中没有this指针。

这种的字节大小还是12

this指针只存在于类的非静态成员函数

上面是非静态,下面是静态

const修饰符

const修饰的常量必须被初始化,且不能被修改。当const修饰成员函数时,它保护的是对象本身,而不是成员函数的参数。

这个时候const修饰的是this指针

Const修饰的常量必须被初始化

类型转换与多态

C++支持多种类型转换操作符,包括:

  • const_cast:用于去除const属性。
  • static_cast:用于将一个类型安全地转换为相关类型。

友元函数

友元函数可以访问类的私有或保护成员,但它不是类的成员。友元关系是单向的,即一个类将另一个类的成员函数声明为友元,并不意味着另一个类也提供了互惠的访问权限。

简单理解就是只有朋友才可以进来调用(类外访问类内)

但是这种做法这只是单向的,只有我把你但朋友你却没有把我但朋友

类的共享

通过共享数据成员,可以实现类的共享效果。例如,一个员工类中的公司名可以作为共享成员,这样当一个员工的公司名改变时,所有员工的公司名都会改变。

这样可以实现类的共享(不为本类对象所特有,而为本类对象所共有)

既一个员工改变公司名,全部人的公司名都改变。

这种情况像可以直接调用

因为没调用构造函数所以要先进行赋值,要不然直接运行cout里面什么都没有

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1989550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Pinata在IPFS上存储NFT图片的实践

文章目录 前言一、什么是IPFS?二、为什么NFT需要IPFS?三、 Pinata:IPFS上的存储解决方案四、 实践:使用Pinata存储NFT图片1. 注册2. 获取API密钥与网关3. 上传图片到IPFS 总结 前言 随着区块链技术的快速发展,NFT&…

【iOS】OC关键字总结及底层原理(下)

目录 weak实现原理objc_initWeak()objc_storeWeak()weak_register_no_lock()weak_entry_for_referent()dealloc关于弱引用的处理weak相关问题 __autoreleasing关键字自动释放池__autoreleasing修饰变量 weak实现原理 weak弱引用指针会存储在SideTable里的weak弱引用表里面&…

实验室冷冻干燥机的安装与调试步骤

实验室冷冻干燥机是一种重要的科研设备,广泛应用于生物、化学、食品科学等领域。正确安装与调试冷冻干燥机,不仅能确保设备的正常运行,还能延长其使用寿命。本文将详细介绍实验室冷冻干燥机的安装与调试步骤,帮助用户顺利完成设备…

Java中等题-最大子数组和(力扣)

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,-5,4] 输出:…

SSM城市垃圾分类管理系统-计算机毕业设计源码44582

摘 要 在当前全球环境问题日益突出的背景下,城市垃圾分类成为推动可持续发展和环境保护的重要举措之一。然而,传统的垃圾处理方式存在效率低下、资源浪费和环境污染等问题。因此,开发一个基于Java编程语言、MySQL数据库和HTML前端技术的高效…

vue()

目录 首先我们回顾一下之前学的东西 入门: v-bind 绑定属性用法 ​编辑 v-if 用法 v-for v-on v-model:双向绑定 组件: 全局组件: 局部组件: vue生命周期:(这里让我研究研究&…

C++ 函数模板和类模板

参考视频:C类模板_哔哩哔哩_bilibili 遗留问题:编译器怎么处理函数模板和类模板 目录 一、为什么会有函数模版?函数模板是为了解决什么问题? 二、函数模板的概念 三、函数模版的使用 四、函数模板的特化 五、类模板的概念 …

24/8/7 算法笔记 支持向量机回归问题天猫双十一

import numpy as np from sklearn.svm import SVR import matplotlib.pyplot as plt X np.linspace(0,2*np.pi,50).reshape(-1,1) y np.sin(X) plt.scatter(X,y) 建模 线性核函数 svr SVR(kernel linear) svr.fit(X,y.ravel())#变成一维y_ svr.predict(X) plt.scatter(…

heapq.heapify构建小顶堆的流程

代码示例 import heapqlst [2, 3, 4, 6, 9, 1, 5] heapq.heapify(lst) print(lst)流程解释 初始列表: 列表 lst 在开始时是 [2, 3, 4, 6, 9, 1, 5]。 调用 heapq.heapify(lst): heapify 函数将 lst 转换为一个小顶堆(min-heap)。在小顶堆中&#xff0…

Spring框架漏洞(附修复方法)

Spring是Java EE编程领域的一个轻量级开源框架,该框架由一个叫Rod Johnson的程序员在2002年最早提出并随后创建,是为了解决企业级编程开发中的复杂性,业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应…

《UniverSeg: Universal Medical Image Segmentation》ICCV2023

摘要 这篇论文提出了一种名为 UniverSeg 的方法,它能够解决未见过的医学图像分割任务,而无需额外的训练。现有的深度学习模型通常无法泛化到新的解剖结构、图像模式或标签上。UniverSeg 利用一种新的 CrossBlock 机制,通过查询图像和定义新分…

利用tkinter制作简易计算器,页面美观,计算保留4位小数

import tkinter as tk import time window tk.Tk() window.title("简易计算器") window.geometry(300x400) content def btn_onclick(data):global contentif data"AC" or data "MC":expression.set()result.set()content elif data :result…

无人机长生不老秘籍

机身保养 外观检查 1.检查机器表面整洁无划痕无针孔凹陷擦伤、畸变等损坏情况 2.晃动机身,仔细听机身内部有无松动零件或者螺丝在机身内部 桨叶检查 1.有无裂痕、磨损、变形等缺陷,如有明显缺陷建议更换 2.卡扣、紧固件有无松脱或失效,…

嵌入式学习之路 14(C语言基础学习——指针操作一维整型数组)

一、指针基础 指针的概念 地址表示内存单元的编号,也被称为指针。指针既是地址,也是一种专门用于处理地址数据的数据类型。 例如,变量a的地址或者十六进制表示的0x1000都可以视作指针。 指针变量的定义 语法:基类型 * 指针变…

探索灵办AI:智能办公的好帮手

引言 随着AI工具的增多,选择合适的AI助手变得尤为重要。ChatGPT的订阅费用高且功能单一,很多小伙伴开始寻找更具性价比和多功能的替代品。灵办AI以其便捷、高效、多功能的特点,成为许多朋友的新宠。 灵办AI助手是一款多功能的全能AI助手&am…

智能名片信息交流系统应用场景解决方案

智能名片作为传统名片在数字化时代的进化产物,集成了移动互联网、大数据和人工智能等先进技术,为商务交流和客户关系管理带来了全新的体验。 系统主要功能 01内容聚合与展示 企业信息展示:智能名片不仅包含个人基本信息,还能展示…

MDIO C22协议访问MMD寄存器

以太网PHY芯片中SMI(Serial Management Interface)串行管理接口,也称MDIO(Management Data Input/Output),通常作为MII管理接口(MII Management Interface)。有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层(PHY)的管理。 MDIO接口有两种协议…

LVX+keepalived群集

Keepalived 双 机 热 备 基 础 知 识 Keepalived 起初是专门针对LVS 设计的一款强大的辅助工具,主要用来提供故障切换(Failover) 和健康检查(Health Checking) 功能——判断 LVS负载调度器、节点服务器的可用性,当master 主机出现故障及时切换到b…

MacOS Anaconda 安装教程及虚拟环境创建

一、下载 Anaconda 1、Anaconda 官网 2、清华大学开源软件镜像站 点 Date 按时间排序,根据自己 Mac 芯片类型下载对应最新版本的。 Intel 芯片的下载 x86_64 版本的Apple m1 芯片的下载 arm64 版本的 二、安装 Anaconda 将安装包下载到本地后,双击安…

人工智能|人工智能教育的发展现状及趋势

智能的热潮正席卷全球。国家在人工智能领域展开战略布局,人工智能人才成为国家急需的高层次技术人才。据领英发布的《全球 Al 领域人才报告》显示,国内人工智能人才缺口达到 500 多万。 毫无疑问,人工智能将不可阻挡地影响所有产业。给自己一…