《重生到现代之从零开始的C++生活》—— 类和对象1
类
我嘞个豆,类可是太重要了,简直是重中之重
class为定义类的关键字,stack为类的名字,{}为类的主题
class stack
{void add (int a,int b){return a+b;}//类的方法,成员函数int _c;int _d;//类的属性,成员变量
};
在成员变量前面一般会加一个特殊标识来区分成员变量
有点像C语言中的struct,结构体的用法
typedef struct list
{int a;int b;
};L
struct在C++中也可以定义类,C++中兼容C中的strcut的用法,同将struct升级为类,所以我们也可以这样
struct stack
{void add (int a,int b){return a+b;}//类的方法,成员函数int _c;int _d;//类的属性,成员变量
};
struct和class都可以定义类,那么他们有什么区别呢
这就的讲到访问限定符
访问限定符
C++中,用类将对象的属性与方法结合在一起,通过访问限定符将其接口提供外部的用户使用
我们有三个访问限定符,public,private 和 protected
pubilc修饰的成员在类外可以直接被访问,protected和private修饰的成员在类外不能被直接访问
class定义成员没有被访问限定符修饰时默认为private,struct默认为public
访问权限作用域从该访问限定符出现的位置到下一个访问限定符出现位置
类域
我们知道有全局域、局部域,还有命名空间,现在又出现了另外一个域,叫类域
类域就是类定义的一个新的作用域,在类体外定义成员的时候,需要用::作用域操作符来指明成员在哪个空间
和命名空间的用法一致
实例化对象
用类类型在物理内存中创建对象的过程,成为类实例化出对象
类是一个抽象的概念,他像是一个房子的图纸,没有分配空间,实例化对象就像是在对着图纸建房子,直到我们实例化出对象的时候才会分配内存
对象的空间
在对象中,肯定包括成员变量,因为内成员变量储存需要空间,但是不包含成员函数
因为成员函数中的代码储存在一个单独的区域,调用的是他们的指针,但是不同的对象调用的指针都是一样的
所以为了节省空间,成员函数的指针不需要储存
当然如果对象中只有成员函数,还是会象征性分配一个字节来表示对象的存在
this指针
this指针是C++在函数调用方便的根本,他是怎么运行的呢
在我们用成员函数的时候,我们已知成员函数在对象中不用储存,那么我们调用成员函数时,他怎么知道他应该访问那个对象呢?
这就要说到this指针
class date
{void init(int a,int b){_a=a;_b=b;}
};
int _a;
int _b;int main (){datr d1;d1.init(1,2);}
这是一个普通的成员函数的调用,那么他怎么知道应该是访问的对象呢?
编译器编译的时候,类的成员函数会默认会在第一个形参的位置增加一个当前类的指针,叫做this指针
所以其实真实原形是这样的
class date
{void init(date*const this, int a,int b){this-> _a=a;this-> _b=b;}
};
int _a;
int _b;int main (){datr d1;d1.init(1,2);}
类的成员函数访问对象,本质是通过this指针访问的
const修饰指针是希望不修改指针本身
当然这是编译器的活,我们在真实使用中不能这么写,否则会报错
相关文章:
《重生到现代之从零开始的C++生活》—— 类和对象1
类 我嘞个豆,类可是太重要了,简直是重中之重 class为定义类的关键字,stack为类的名字,{}为类的主题 class stack {void add (int a,int b){return ab;}//类的方法,成员函数int _c;int _d;//类的属性,成…...
《FMambaIR:一种基于混合状态空间模型和频域的方法用于图像恢复》学习笔记
paper:(PDF) FMambaIR: A Hybrid State Space Model and Frequency Domain for Image Restoration 目录 摘要 一、引言 二、相关工作 1、图像恢复 2、频率学习 3、状态空间模型(SSM) 三、框架 1、基本知识 2、整体框架 3、F-Mamba…...
每日十题八股-2025年1月18日
1.服务器处理并发请求有哪几种方式? 2.讲一下io多路复用 3.select、poll、epoll 的区别是什么? 4.epoll 的 边缘触发和水平触发有什么区别? 5.redis,nginx,netty 是依赖什么做的这么高性能? 6.零拷贝是什么…...
海康威视摄像头RTSP使用nginx推流到服务器直播教程
思路: 之前2020年在本科的时候,由于项目的需求需要将海康威视的摄像头使用推流服务器到网页进行直播。这里将自己半个月琢磨出来的步骤给大家发一些。切勿转载!!!! 使用网络摄像头中的rtsp协议---------通…...
搭建一个基于Spring Boot的书籍学习平台
搭建一个基于Spring Boot的书籍学习平台可以涵盖多个功能模块,例如用户管理、书籍管理、学习进度跟踪、笔记管理、评论和评分等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的书籍学习平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个…...
Go 语言的slice是如何扩容的?
Go 语言中的 slice 是一种灵活、动态的视图,是对底层数组的抽象。当对 slice 进行追加元素等操作导致其长度超过容量时,就会发生扩容。 一、扩容的基本原理 当 slice 需要扩容时,Go 语言会根据当前的容量来确定新的容量。一般来说ÿ…...
Apache Hive--排序函数解析
在大数据处理与分析中,Apache Hive是一个至关重要的数据仓库工具。其丰富的函数库为数据处理提供了诸多便利,排序函数便是其中一类非常实用的工具。通过排序函数,我们能够在查询结果集中为每一行数据分配一个排名值,这对于数据分析…...
Java 接口安全指南
Java 接口安全指南 概述 在现代 Web 应用中,接口(API)是前后端交互的核心。然而,接口的安全性常常被忽视,导致数据泄露、未授权访问等安全问题。本文将详细介绍 Java 中如何保障接口安全,涵盖以下内容&am…...
合合信息名片全能王上架原生鸿蒙应用市场,成为首批数字名片类应用
长期以来,名片都是企业商务沟通的重要工具。随着企业数字化转型,相较于传统的纸质名片,数字名片对于企业成员拓展业务、获取商机、提升企业形象等方面发挥着重要作用。近期,合合信息旗下名片全能王正式上线原生鸿蒙应用市场&#…...
38.【3】CTFHUB web sql 报错注入
进入靶场 按照提示输入1 显示查询正确 既然是报错注入,先判断整形还是字符型注入 先输入1 and 11 再输入1 and 12 都显示查询正确,可知此为字符串型注入,不是数字型注入 然后就不会了 求助AI和其他wp 由以上2张搜索结果知updatexml是适用…...
RC2在线加密工具
RC2是由著名密码学家Ron Rivest设计的一种传统对称分组加密算法,它可作为DES算法的建议替代算法。RC2是一种分组加密算法,RC2的密钥长度可变,可以从8字节到128字节,安全性选择更加灵活。 开发调试上,有时候需要进行对…...
NVIDIA 下 基于Ubuntun20.04下 使用脚本安装 ros2-foxy 和 使用docker安装 ros2-foxy
一、前提介绍: 本文主要采用两种方式在NVIDIA 下基于 Ubuntun20.04安装 ros2-foxy。 使用环境: NVIDIA 为 Jetson 系列下 Jetson Xavier NX; Ubuntun版本:20.04 二、安装方法: 1、使用脚本编译方式: 使…...
STL容器-- list的模拟实现(附源码)
STL容器-- list的模拟实现(附源码) List的实现主要考察我们对list这一容器的理解,和代码的编写能力,通过上节对list容器的使用,我们对list容器已经有了一些基本的了解,接下来就让我们来实现一些list容器常见…...
python——句柄
一、概念 句柄指的是操作系统为了标识和访问对象而提供的一个标识符,在操作系统中,每个对象都有一个唯一的句柄,通过句柄可以访问对象的属性和方法。例如文件、进程、窗口等都有句柄。在编程中,可以通过句柄来操作这些对象&#x…...
KubeSphere 与 Pig 微服务平台的整合与优化:全流程容器化部署实践
一、前言 近年来,为了满足越来越复杂的业务需求,我们从传统单体架构系统升级为微服务架构,就是把一个大型应用程序分割成可以独立部署的小型服务,每个服务之间都是松耦合的,通过 RPC 或者是 Rest 协议来进行通信,可以按照业务领域来划分成独立的单元。但是微服务系统相对…...
ESP8266-01S、手机、STM32连接
1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块,主要模式如下图: 上节说到,我们需要用到AT固件进行局域网应用(ESP8266连接的STM32和手机进行连接)。 ESP8266为一个WiFi透传模块,和…...
Web开发 -前端部分-CSS-2
一 长度单位 代码实现: <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...
【QT用户登录与界面跳转】
【QT用户登录与界面跳转】 1.前言2. 项目设置3.设计登录界面3.1 login.pro参数3.2 界面设置3.2.1 登录界面3.2.2 串口主界面 4. 实现登录逻辑5.串口界面6.测试功能7.总结 1.前言 在Qt应用程序开发中,实现用户登录及界面跳转功能是构建交互式应用的重要步骤之一。下…...
记录一次关于spring映射postgresql的jsonb类型的转化器事故,并使用hutool的JSONArray完成映射
事件的起因是这样的,那次事故发生的起因是因为WebFlux和postgreSQL去重新做鱼皮的鱼图图项目(鱼图图作业)。 在做到picture表的时候,发现postgreSQL中有个jsonb的类型可以更好的支持json数组。 出于锻炼新技术的目的,…...
基于 HTML5 Canvas 制作一个精美的 2048 小游戏--day2
为了使 2048 游戏的设计更加美观和用户友好,我们可以进行以下几项优化: 改善颜色方案:使用更温馨的颜色组合。添加动画效果:为方块的移动和合并添加渐变效果。优化分数显示:在分数增加时使用动画效果。 以下是改进后…...
《ESP32-S3-EYE开发板》之ESP-WHO实战:从环境搭建到人脸检测项目编译
1. ESP32-S3-EYE开发板与ESP-WHO初探 第一次拿到ESP32-S3-EYE这块开发板时,我对着板载的200万像素摄像头和8MB PSRAM发了半天呆——这配置跑人脸检测真的够用吗?实测后发现,配合乐鑫官方的ESP-WHO视觉框架,不仅能流畅运行人脸检测…...
告别重建烦恼:手把手教你用ikd-tree在ROS中实现动态点云地图实时更新
告别重建烦恼:手把手教你用ikd-tree在ROS中实现动态点云地图实时更新 在机器人SLAM和感知系统中,处理动态点云数据一直是个棘手的问题。想象一下,你的机器人在仓库中导航,突然有人推着货架从它面前经过——传统的静态KD-Tree会因为…...
别光看exp!深入理解pwn1_sctf_2016中C++字符串替换引发的栈溢出
从C字符串替换到栈溢出:pwn1_sctf_2016漏洞的深层解析 当我们在CTF比赛中遇到一个看似简单的栈溢出题目时,往往会习惯性地寻找明显的缓冲区溢出点。但pwn1_sctf_2016这道题却巧妙地利用了C字符串处理的特性,将简单的"I"替换为"…...
我不是在用 AI 助手,我在把自己的能力沉淀成组织资产搜
1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...
突破直播限制:OBS多平台同步推流插件完全指南
突破直播限制:OBS多平台同步推流插件完全指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否曾为需要同时在多个平台直播而烦恼?手动切换推流、重复配置参…...
iOS动态库注入新选择:深度体验TrollFools,对比重打包与Frida的优劣
iOS动态库注入技术选型:TrollFools、重打包与Frida深度对比 在iOS应用逆向工程与功能定制领域,动态库注入一直是核心需求之一。随着苹果生态安全机制的不断升级,开发者们也在持续探索更高效、更隐蔽的注入方案。本文将聚焦三种主流的非越狱环…...
企业级报表工具润乾报表的安全审计:从dataSphereServlet接口看文件上传风险
企业级报表工具安全审计实战:从接口风险到供应链防护 报表系统作为企业数据流转的核心枢纽,其安全性直接影响业务数据的完整性与机密性。某次内部安全评估中,我们发现部署在财务系统的报表组件存在异常文件写入行为,追踪发现是源于…...
书匠策AI:毕业论文写作的“智能魔法棒”,开启学术新纪元!
在学术的浩瀚宇宙中,毕业论文如同璀璨星辰,既照亮了我们求知的道路,也考验着我们的智慧与毅力。然而,撰写一篇高质量的毕业论文并非易事,它需要我们跨越选题迷雾、穿越文献丛林、构建逻辑框架、雕琢内容细节࿰…...
终极指南:如何免费解锁Cursor AI Pro功能,告别试用限制
终极指南:如何免费解锁Cursor AI Pro功能,告别试用限制 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reac…...
Qwen3-0.6B-FP8技术实践:FP8量化模型在国产昇腾芯片适配初探
Qwen3-0.6B-FP8技术实践:FP8量化模型在国产昇腾芯片适配初探 1. 引言:当轻量化大模型遇见国产算力 最近在部署大模型时,我遇到了一个挺有意思的问题:如何在资源有限的国产芯片上跑起一个像样的对话模型?相信很多开发…...
