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

C++基础day1

前言:谢谢阿秀,指路阿秀的学习笔记


一、基础语法

1.构造和析构:

类的构造函数是一种特殊的函数,在创建一个新的对象时调用。类的析构函数也是一种特殊的函数,在删除所创建的对象时调用。

构造顺序:父类->子类

析构顺序:子类->父类

 2.函数重载和运算符重载

函数重载:在同一作用域内可以声明多个重名函数,其函数参数的个数或顺序或类型必须不同,不能仅通过返回类型的不同来重载函数。

运算符重载:运算符重载函数是类的成员函数(法一)时,它的第一个操作数是调用该函数的对象(即 this 指针指向的对象),第二个操作数是通过参数传递的对象。

Box operator+(const Box& b) {Box box;box.length = this->length + b.length;box.breadth = this->breadth + b.breadth;box.height = this->height + b.height;return box;
}

上述代码是针对+的重载,可以实现两个Box对象的相加。

例:Box3=Box1+Box2

实际上相当于  Box1.operator+(Box2);

还有一种方式是通过全局函数的方式重载(定义在类外面)

Box operator+(const Box& a, const Box& b) {Box box;box.setLength(a.getLength() + b.getLength());box.setBreadth(a.getBreadth() + b.getBreadth());box.setHeight(a.getHeight() + b.getHeight());return box;
}

调用方式依然是Box3=Box1+Box2。此时编译器会将其解释为Box3 = operator+(Box1, Box2);

3.结构体内存对齐

  含义:以空间换时间,使一次访存可以取出一条指令,加快存取速度,常用于RISC指令流水线。

  •  在按字节编址的计算机中,char对齐值是1,int是4,double是8。结构体的默认对齐值是其所有成员中最大的对齐值。

  • struct的长度必须是成员中最大对齐值的整数倍(不够补空字节)。

    可查看struct大小

struct Example {char a;      // 1 字节int b;       // 4 字节double c;    // 8 字节
};
cout << "Size of Example: " << sizeof(Example) << endl;
  • 如何控制内存对齐方式?  

        1. c++11提供了alignas,可以指定结构体对齐方式。

struct alignas(16) Example {char a;int b;double c;
};

 注意事项:alignas的对齐值必须是2的幂次倍,且不能小于结构体最小成员对齐值。

 当指定数值小于默认值的时候,alignas无效。

     2.#pragma pack(push,n)

      alignas无效时,使用#pragma强制将对齐方式设置为 n 字节

相关文章:

C++基础day1

前言&#xff1a;谢谢阿秀&#xff0c;指路阿秀的学习笔记 一、基础语法 1.构造和析构: 类的构造函数是一种特殊的函数&#xff0c;在创建一个新的对象时调用。类的析构函数也是一种特殊的函数&#xff0c;在删除所创建的对象时调用。 构造顺序&#xff1a;父类->子类 析…...

从TinyZero的数据与源码来理解DeepSeek-R1-Zero的强化学习训练过程

1. 引入 TinyZero&#xff08;参考1&#xff09;是伯克利的博士生复现DeepSeek-R1-Zero的代码参仓库&#xff0c;他使用veRL来运行RL强化学习方法&#xff0c;对qwen2.5的0.5B、1.5B、3B等模型进行训练&#xff0c;在一个数字游戏数据集上&#xff0c;达到了较好的推理效果。 …...

爬虫基础(四)线程 和 进程 及相关知识点

目录 一、线程和进程 &#xff08;1&#xff09;进程 &#xff08;2&#xff09;线程 &#xff08;3&#xff09;区别 二、串行、并发、并行 &#xff08;1&#xff09;串行 &#xff08;2&#xff09;并行 &#xff08;3&#xff09;并发 三、爬虫中的线程和进程 &am…...

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具01

1、开发背景 大家都很熟悉&#xff0c;Oracle提供了Impdp和ExpDp工具&#xff0c;功能很强大&#xff0c;可以进行db的导入导出的处理。但是对于Sqlserver数据库只是提供了简单的图形化的导出导入工具&#xff0c;在实际的开发和生产环境不太可能让用户在图形化的界面选择移行…...

队列—学习

1. 手写队列的实现 使用数组实现队列是一种常见的方法。队列的基本操作包括入队&#xff08;enqueue&#xff09;和出队&#xff08;dequeue&#xff09;。队列的头部和尾部分别用 head 和 tail 指针表示。 代码实现 const int N 10000; // 定义队列容量&#xff0c;确保够…...

SpringBoot的配置(配置文件、加载顺序、配置原理)

文章目录 SpringBoot的配置(配置文件、加载顺序、配置原理)一、引言二、配置文件1、配置文件的类型1.1、配置文件的使用 2、多环境配置 三、加载顺序四、配置原理五、使用示例1、配置文件2、配置类3、控制器 六、总结 SpringBoot的配置(配置文件、加载顺序、配置原理) 一、引言…...

如何本地部署DeepSeek?DeepThink R1 本地部署全攻略:零基础小白指南。

&#x1f680; 离线运行 AI&#xff0c;免费使用 OpenAI 级别推理模型 本教程将手把手教你如何在本地部署 DeepThink R1 AI 模型&#xff0c;让你无需联网就能运行强大的 AI 推理任务。无论你是AI 新手还是资深开发者&#xff0c;都可以轻松上手&#xff01; &#x1f4cc; 目录…...

陆游的《诗人苦学说》:从藻绘到“功夫在诗外”(中英双语)mastery lies beyond poetry

陆游的《诗人苦学说》&#xff1a;从藻绘到“功夫在诗外” 今天看万维钢的《万万没想到》一书&#xff0c;看到陆游的功夫在诗外的句子&#xff0c;特意去查找这首诗的原文。故而有此文。 我国学人还往往过分强调“功夫在诗外”这句陆游的名言&#xff0c;认为提升综合素质是一…...

Golang —协程池(panjf2000/ants/v2)

Golang —协程池&#xff08;panjf2000/ants/v2&#xff09; 1 ants1.1 基本信息1.2 ants 是如何运行的&#xff08;流程图&#xff09; 1 ants 1.1 基本信息 代码地址&#xff1a;github.com/panjf2000/ants/v2 介绍&#xff1a;ants是一个高性能的 goroutine 池&#xff0c…...

在 crag 中用 LangGraph 进行评分知识精炼-下

在上一次给大家展示了基本的 Rag 检索过程&#xff0c;着重描述了增强检索中的知识精炼和补充检索&#xff0c;这些都是 crag 的一部分&#xff0c;这篇内容结合 langgraph 给大家展示通过检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;的工作流&am…...

基于springboot+vue的哈利波特书影音互动科普网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

Cypher入门

文章目录 Cypher入门创建数据查询数据matchoptional matchwhere分页with 更新数据删除数据实例&#xff1a;好友推荐 Cypher入门 Cypher是Neo4j的查询语言。 创建数据 在Neo4j中使用create命令创建节点、关系、属性数据。 create (n {name:$value}) return n //创建节点&am…...

使用Z-score进行数据特征标准化

数据标准化是数据处理过程中非常重要的一步,尤其在构建机器学习模型时尤为关键。标准化的目的是将不同量纲的变量转换到相同的尺度,以避免由于量纲差异导致的模型偏差。Z-score标准化是一种常见且简单的标准化方法,它通过计算数据点与平均值的差异,并将其按标准差进行缩放,…...

初级数据结构:栈和队列

一、栈 (一)、栈的定义 栈是一种遵循后进先出&#xff08;LIFO&#xff0c;Last In First Out&#xff09;原则的数据结构。栈的主要操作包括入栈&#xff08;Push&#xff09;和出栈&#xff08;Pop&#xff09;。入栈操作是将元素添加到栈顶&#xff0c;这一过程中&#xf…...

【思维导图】java

学习计划&#xff1a;将目前已经学的知识点串成一个思维导图。在往后的学习过程中&#xff0c;不断往思维导图里补充&#xff0c;形成自己整个知识体系。对于思维导图里的每个技术知识&#xff0c;自己用简洁的话概括出来&#xff0c; 训练自己的表达能力。 面向对象三大特性 …...

Redis脑裂问题详解及解决方案

Redis是一种高性能的内存数据库&#xff0c;广泛应用于缓存、消息队列等场景。然而&#xff0c;在分布式Redis集群中&#xff0c;脑裂问题&#xff08;Split-Brain&#xff09;是一个需要特别关注的复杂问题。本文将详细介绍Redis脑裂问题的成因、影响及解决方案。 一、什么是…...

玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…...

【Windows Server实战】生产环境云和NPS快速搭建

前置条件 本文假定你已达成以下前提条件&#xff1a; 有域控DC。有证书服务器&#xff08;AD CS&#xff09;。已使用Microsoft Intune或者GPO为客户机申请证书。服务器上至少有两张网卡&#xff08;如果用虚拟机做的测试环境&#xff0c;可以用一张HostOnly网卡做测试&#…...

[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置

2025-1-29 一、新建工程 选择一个要创建工程文件夹的地方&#xff0c;在空白处鼠标右键选择通过Code打开 打开Vscode&#xff0c;点击platformIO图标&#xff0c;选择PIO Home下的open&#xff0c;最后点击new project 按照下图进行设置 第一个是工程文件夹的名称 第二个是…...

【NLP251】Transformer精讲 残差链接与层归一化

精讲部分&#xff0c;主要是对Transformer的深度理解方便日后从底层逻辑进行创新&#xff0c;对于仅应用需求的小伙伴可以跳过这一部分&#xff0c;不影响正常学习。 1. 残差模块 何凯明在2015年提出的残差网络&#xff08;ResNet&#xff09;&#xff0c;Transformer在2016年…...

PyTorch 2.8镜像作品集:基于OpenCV+Torch的实时手势识别视频演示

PyTorch 2.8镜像作品集&#xff1a;基于OpenCVTorch的实时手势识别视频演示 1. 镜像环境与能力概览 PyTorch 2.8深度学习镜像是一个经过深度优化的专业级开发环境&#xff0c;专为现代AI应用设计。这个环境最吸引人的特点是它已经预装了所有必要的工具和库&#xff0c;让你可…...

为Qwen-VL“点亮”视觉思维:从注意力热力图洞察多模态对齐的深层逻辑

1. 理解Qwen-VL的视觉思维机制 当你第一次看到Qwen-VL这类视觉语言模型时&#xff0c;可能会好奇它究竟是如何"看"图片的。想象一下&#xff0c;你正在教一个小朋友看图说话&#xff1a;小朋友会先扫视整张图片&#xff0c;然后目光停留在某些关键区域&#xff0c;最…...

YOLO-V5实战案例:用公开数据集训练你的第一个检测模型

YOLO-V5实战案例&#xff1a;用公开数据集训练你的第一个检测模型 1. 为什么选择YOLO-V5 在计算机视觉领域&#xff0c;目标检测技术已经广泛应用于安防监控、自动驾驶、工业质检等场景。YOLO&#xff08;You Only Look Once&#xff09;系列模型因其出色的速度和精度平衡&am…...

Ostrakon-VL终端部署案例:单卡3090实现12路摄像头并发扫描

Ostrakon-VL终端部署案例&#xff1a;单卡3090实现12路摄像头并发扫描 1. 项目背景与核心价值 在零售与餐饮行业&#xff0c;传统的图像识别系统往往面临两个痛点&#xff1a;一是工业级UI操作复杂&#xff0c;员工培训成本高&#xff1b;二是多路摄像头并发处理需要昂贵的高…...

OpenClaw极简配置:Qwen3.5-9B基础功能5分钟体验

OpenClaw极简配置&#xff1a;Qwen3.5-9B基础功能5分钟体验 1. 为什么选择极简配置&#xff1f; 上周我在测试OpenClaw时&#xff0c;被它复杂的配置流程折腾得够呛——飞书机器人接入、多模型切换、技能市场筛选……这些功能虽然强大&#xff0c;但对于只想快速验证核心价值…...

Visium HD空转实战:Space Ranger v4.0.1从安装到结果解读全流程

1. Visium HD与Space Ranger初探 第一次接触Visium HD技术时&#xff0c;我被它强大的空间转录组分析能力震撼到了。简单来说&#xff0c;这项技术能让我们在组织切片上精确到单个细胞的位置&#xff0c;同时获取它们的基因表达数据。想象一下&#xff0c;这就像给组织样本拍了…...

AI辅助开发:描述需求,快马AI自动生成旅行商问题算法与可视化

最近在做一个旅行商问题(TSP)的算法项目&#xff0c;想试试用AI辅助开发能有多高效。结果发现InsCode(快马)平台的AI功能真的帮了大忙&#xff0c;整个过程特别顺畅。这里分享一下我的体验。 需求分析阶段 刚开始我只是简单描述了需求&#xff1a;"需要一个用模拟退火算…...

小米智能家居跨区域协同控制技术指南

小米智能家居跨区域协同控制技术指南 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 随着智能家居设备数量的快速增长&#xff0c;多区域设备协同工作已成为提升居住体…...

聚焦18650电池点焊机:新能源产业焊接环节的核心设备

在新能源产业高速发展的当下&#xff0c;18650锂电池凭借其高能量密度、长循环寿命及稳定性能&#xff0c;成为电动汽车、储能系统、便携电子设备等领域的核心动力源。作为电池组装环节的关键设备&#xff0c;18650单节自动点焊机通过精密的焊接技术&#xff0c;将电池极耳与镍…...

k8s中部署prometheus并监控k8s集群以及nginx案例

4台主机 node1主机&#xff1a;k8s集群中的master node2主机&#xff1a;搭建了harbor仓库&#xff0c;存储所需的docker镜像 test3、4主机&#xff1a;k8s集群中的woker 搭建prometheus https://github.com/prometheus-operator/kube-prometheus 获取prometheus压缩包的…...