类和对象——开始步入正轨

VS2012环境下MFC鼠标拖动绘制矩形示例 MFC(Microsoft Foundation Classes)是微软提供的一套用于简化Windows应用程序开发的C++类库。MFC封装了大部分Windows API函数,以面向对象的形式提供给开发者,极大提高了Windows应用的开发效率和代码的可复用性。CDC类是MFC(Microsoft Foundation Classes)中用于管理设备上下文(Device Contexts, DC)的抽象基类。设备上下文作为图形绘制的枢纽,它封装了与设备有关的输出绘图操作的属性和方法。 阅读详情

C++兼容C,C++把结构体升级成了类;

(1)类里面可以有数据,这个数据叫成员变量。

(2)类里面还可以定义函数。

(3)C语言 struct ListNode是类型,C++里面ListNode就是类型,不用在前面加上struct

这个就是在类里面定义函数

调用类里面的函数时就这样写

在C++中,更喜欢用Class来定义类

类的定义

定义的函数叫成员函数

定义的变量叫成员变量

类的名称就是类型,用类的类型去定义一个变量,C++里更喜欢将定义出来的的变量叫对象

假如把类的声明和定义分开写

这就是类的声明

这是类的定义

而且还要加上圈中的部分,这是告诉编译器Init是Stack这个类里面的函数,不是全局函数

类的访问限定符

C++的访问限定符有三种

分别是公有、保护和私有

一个类大部分情况下,成员变量是私有的,成员函数给别人用的就是共有的不给别人用的就是私有的

成员变量都会加个_避免与成员函数中的参数重名导致程序错误

类对象实例化

类里面定义的成员变量其实只是一种声明

只有在主函数里开空间了才算是定义,这个也叫类对象的实例化

这有道题

A1里面定义了一个int变量,所以它的大小就是4,但A2和A3什么都没定义,其实也占一个字节的空间,这一个字节其实用来占位的,标识对象存在过

this指针

在每次调用成员函数时编译器也会给这个函数里加一个this指针

调用的时候也会改,也是编译器偷偷改

在类里面其实也可以使用this,但是在实参和形参的部分不能加

因为this是个隐含的形参,所以他存在栈里面

构造函数

类和对象里面其实是有6个默认成员函数

一个类有多个构造函数,就证明他有多个初始化方式

以后在类里面直接构造一个初始化函数,当下次实例化的时候就会自动调用构造函数,这个还是函数重载,无参的不开空间,有参的开空间

这里明显能看到初始化了

像构造函数这种的函数如果我们不写系统就会默认生成,但是这次生成的值却是随机值

其实是C++会把类型分为内置类型和自定义类型

int/char/double和指针等等都是内置类型

用户自定义的类型就是自定义类型

默认生成的构造函数

1、内置类型成员不作处理

2、自定义类型的成员,会去调用他的默认构造(不用传参数的构造)

其实也可以在声明位置给缺省值,就会去用缺省值来初始化

析构函数

每次开完空间后都需要销毁,所以就有了析构函数,return 之前自动释放空间

这就是析构函数,程序解释后就会自动调用

先来写一个日期类

再将对象实例化,接着打印出来

或者直接将构造函数的参数改成全缺省

拷贝构造

就相当于实例化后的对象之间进行赋值,内置类型不用拷贝构造,自定义类型无论简单或复制都需要写一个拷贝构造

这里的意思就是实例化一个d2,然后将d1的值赋值给d2

还有这种写法

而且最好加个const,就会避免代码写反了的问题

练习——求当前日期的x天后的日期

可以先写一个求每一月天数的函数

然后写出求日期函数

默认生成拷贝构造和赋值重载:

对于内置类型,如果不写拷贝构造编译器会进行值拷贝(按字节一个一个拷贝)

对于自定义类型,不写拷贝构造则会调用这个成员的拷贝构造/赋值重载

对于类和对象来说,符合栈的结构——后定义的先析构

什么情况下需要实现拷贝构造?

自己实现了析构函数释放空间,就需要实现拷贝构造

基于STM32、HAL库的MCP4013T-103E/CH 数字电位器驱动程序设计 define MCP4013_I2C_ADDR (0x5F << 1) // HAL库使用7位地址左移1位,或直接使用0xBE/0xBF。#include "i2c.h" // 包含你的I2C初始化相关的头文件,例如由CubeMX生成的 i2c.h。大于127的值会被截断。// MCP4013的读操作:主机发起读取请求,从机返回当前滑片位置的一个字节。// 使用HAL_I2C_Master_Transmit直接发送数据。// 使用HAL_I2C_Master_Receive读取一个字节。 阅读详情

相关推荐

RaiDrive+AList保姆级教程:5分钟搞定OneDrive/百度网盘挂载到本地(附WebDAV配置)

本文提供RaiDrive+AList的保姆级教程,5分钟内实现将OneDrive/百度网盘挂载到本地的详细步骤,包括WebDAV配置。通过AList统一转换云存储协议,RaiDrive虚拟磁盘挂载,显著提升多网盘管理效率,适合需要跨平台操作文件的用户。

weixin_28331555的博客 456

类和对象的简述(c++篇)

c++类和对象简述

羑悻的博客. 1580

告别昂贵硬件!用Unity3D 2023 + ROS2 Humble搭建你的第一个SLAM仿真实验室(保姆级教程)

本文提供了一份详细的教程,介绍如何使用Unity3D 2023和ROS2 Humble搭建SLAM仿真实验室,无需昂贵硬件即可实现虚拟传感器模拟和算法测试。通过Docker容器配置、ROS2安装优化及Unity插件集成,开发者可以快速构建高精度的仿真环境,适用于自主导航、多传感器标定等场景。

weixin_42526353的博客 433

开始步入正轨

    昨天又去心理咨询了,感觉好一点了, 本来也用不着怎么去了。但是上次算是预约了一样的,总不能放了人家的鸽子,人家对我还是很真诚的帮助的。再说万一人家把我当什么实验对象那?实验室里正在被做试验的小白鼠跑了,肯定是很伤心的,所以我还是要去的。早早的就去了,等他们过来,这次心情不错,还有心思吹口哨。这次也没有说什么实质性的内容,反正就是随便聊聊,wdl了解了一点情况,最后就是给我提了一点建议,希望

lovingdue的专栏 970

CANoe信号波形分析保姆级教程:Graphic窗口从配置到实战避坑

本文详细解析了CANoe的Graphic窗口在信号波形分析中的高效配置与实战应用技巧。从信号显示模式选择、测量光标进阶操作到信号分组策略,提供工程化解决方案,帮助工程师快速定位总线信号异常,提升汽车电子开发与测试效率。

weixin_29279047的博客 266

Frenet坐标系下动态街道场景的最优轨迹生成

本文详细解读了Lattice Planner

BigDavid123的博客 2390

什么是面向对象

对象和类(什么是对象,什么是类) 面向对象和面向过程(java中,万物皆对象) 面向过程:是对软件分析,设计,开发的一种思想。早期先有的就是面向过程思想,随着软件规模以及问题的复杂度,面向过程的一些弊端暴露。假设如果需要开车这个需求:1.启动 2.挂挡3.踩油门4.走了,需求造车,代表C语言 面向对象(OOP):已经主流的软件分析(OOA),设计(OOD),开发(OOP)思想。java、C++,Python,造车:更契合人的思维模式。并不是考虑这个问题应分几步完成,而是考虑怎么设计这个问题。分析得出车组成

小鬼的博客 166

工作中SVN的使用,保姆级教程!

SVN是一款集中式版本控制系统,采用客户端-服务器模式管理代码版本。与Git相比,SVN在目录权限控制、大型二进制文件处理等方面具有优势,适合特定场景使用。本文介绍了SVN的安装方法、基本操作(检出、提交、更新、回滚等)以及分支管理(创建、合并、切换)。同时讲解了文件冲突的解决方法,并演示了如何在IDEA中集成SVN工具。SVN虽然逐渐被Git取代,但在某些特定场景下仍是可靠选择,工具选择应基于团队和项目需求。

胜人者有力,自胜者强! 1851

不好意思,前两天喝酒了,今天接着更新,并且从今天开始,步入正轨,如果有不正确的地方,欢迎指正(别说我封面问题,正经封面没人看)

一.JAVA当中的名词解释 1.JVM 虚拟机,使用不同的操作系统中,模拟相同的操作环境 2.JRE 运行环境,包含JVM和解释器,完整的JAVA运行环境 3.JDK 开发环境,包含JDK+类库+开发工具包 二.JAVA的特点 面向对象 简单性 跨平台 三.JAVA的数据类型 基本数据类型 整数 int、short、byte、long 小数 float、double 布尔 boolean 只有两个值 true/false

qq_42915159的博客 240

Python爬虫实战:高效爬取中国专利数据库的完整指南

在当今信息爆炸的时代,专利数据作为技术创新的重要指标,对企业研发、市场分析和学术研究都具有极高价值。中国作为全球专利申请量最大的国家,其专利数据库包含了海量的技术创新信息。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的中国专利数据库爬虫系统。中国专利数据库主要由国家知识产权局(CNIPA)维护,包含发明专利、实用新型专利和外观设计专利三大类。截至2023年,中国专利数据库已收录超过400万件发明专利和300万件实用新型专利。

2201_76125261的博客 1572

FPGA实现串口的任意字节数接收

基于FPGA的任意字节数(单字节、多字节)的串口(UART)接收,真的不来看看吗?

孤独的单刀 1万+

【连载】Scala程序设计:Java虚拟机多核编程实战——Scala步入正轨

你可以基于自己已有的Java技能学习Scala。在本章中,我们从熟悉的地方——Java代码——出发,向Scala前进。Scala在一些地方同Java类似,但差异之处更是不胜枚举。Scala偏爱纯粹的面向对象,但是它也会尽可能的把类型映射为Java类型。Scala支持类Java的命令式编程风格,同时也支持函数式风格。启动你最喜爱的编辑器,我们要开启Scala之旅了!3.1 把Scala当...

weixin_33708432的博客 82

游戏大厂如何解析引擎技术

本文系统解析了游戏大厂如何评估和定制游戏引擎。游戏引擎作为游戏开发的核心基础,大厂会从性能、跨平台支持、渲染能力、网络模块等8个维度进行技术解析,通过文档查勘、源码阅读、Demo测试等7个步骤深度评估。解析后通常有三种决策:直接使用、深度定制或自研重构。文章以腾讯、网易、米哈游等为例,展示了不同厂商的引擎定制策略,并分析了技术解析面临的挑战和未来趋势。最终指出,体系化的引擎技术解析是打造高质量游戏的关键,需要持续的技术投入和团队协作。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 535

在未来三周有感——重拾的记忆

类修饰符的含义public 可被任意对任何对象访问的类abstract 需要子类提供的方法实现final该类不能被继承缺省 在相同包中的对象此能使用abstract和final相互独立不能出现在一个类的定义中。

2302_80343656的博客 119

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java编程核心原理:从JVM内存模型到面向对象实战应用

Java作为一门面向对象的编程语言,其核心在于理解程序如何被编译、加载和执行的完整生命周期。JVM(Java虚拟机)作为运行时的核心引擎,通过内存模型管理堆、栈和方法区,实现跨平台执行和自动垃圾回收。面向对象编程(OOP)通过封装、继承和多态三大特性,构建出模块化、可扩展的软件系统,这在企业级应用开发中尤为重要。集合框架(如ArrayList、HashMap)和异常处理机制是Java标准库的关键组成部分,它们基于泛型实现类型安全,并通过合理的API设计提升开发效率。在实际工程中,理解环境变量配置、IDE背后

weixin_30654583的博客 316

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

自学Java-8

自学Java-8

weixin_63456578的博客 173

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

第二周感悟

数据类型[] 数组名 如: int [] array。

2403_87845071的博客 1501

python中使用函数编程的意义_浅谈Python中函数式编程、面向对象编程以及古怪的PythonIC...

1、函数式编程作为结构化编程的一种,正在受到越来越多的重视。那么什么事函数式编程呢?在维基百科中给出了详细的定义,函数式编程又称泛函数编程,是一种编程规范,它将函数运算视为数学上的函数计算。简单的来说就是一步步的执行程序。2、面向对象编程呢是具有对象概念的程序编程范例,同时也是一种程序开发的方法。简单地说呢就是抽象出一类方法为类,我们只需要执行一个指令就可以完成我们想要的目的,这是目前阶段较为合适...

weixin_39966163的博客 306

java浅拷贝和深拷贝(基础也是很重要的)

对象的copy你兴许只是懵懂,或者是并没在意,来了解下吧。 对于的github基础代码https://github.com/chywx/JavaSE 最近学习c++,跟java很是相像,在慕课网学习c++也算是重温习了下java基础 明白了当初讲师一直强调java传递的话只有值传递,不存在引用传递,为什么一直要重复这,既然只有值传递,为啥还强调不是引用传递 毛病啊这是 学了c++才知道,原来c...

陈灬大灬海 120

Scala程序设计:Java虚拟机多核编程实战 (图灵程序设计丛书) - 电子书下载 -(百度网盘 高清版PDF格式)...

Scala程序设计_Java虚拟机多核编程实战 (图灵程序设计丛书)-苏帕拉马尼亚姆(Venkat Subramaniam)在线阅读百度网盘下载(vbgu)书名:Scala程序设计:Java虚拟机多核编程实战 (图灵程序设计丛书)作者:苏帕拉马尼亚姆(Venkat Subramaniam)格式:EPUB, HTMLZ, PDF书号:...

669

【ECMAScript】基础知识

定义类也有两种主要方式:类声明和类表达式。这两种方式都使用 class 关键字加大括号// 类表达式// 类声明式// 属性 properties// 构造器super();// 方法 methods。

weixin_40584890的博客 2022

不想转型高升?12条箴言助IT人士提高效率

抛弃偷懒耍滑的恶劣习气、重拾不惧苦累的工作态度、以数据为依托支持自身转型——在本文中,我将与大家共同探讨如何在自己的IT职业生涯中步入正轨、进而登上事业的顶峰 在当下这样一个入职即被套牢、预算永远不足的时代,大家是如何面对自己的既有岗位、又是怎样规划着未来的发展方向呢?希望以下12条箴言能给各位提供一点小小的帮助。 这12条中有一些属于切实可行的操作性建议,大家没准之前也...

weixin_34080903的博客 93

ASIL Ready处理器IP:从安全机制到系统认证的实战指南

在汽车电子电气架构日益复杂的今天,功能安全已成为车载控制器开发的刚需。ISO 26262标准为半导体IP提供了SEooC评估路径,让处理器IP能够以ASIL Ready状态提前准备安全文档与验证证据。理解ASIL Ready与最终系统认证的边界,正确使用FMEDA和安全手册,并借助故障注入验证安全机制,是缩短开发周期的关键。从域控制器到安全气囊控制器,基于ARC处理器IP的工程实践表明,将IP安全能力逐条转化为系统需求,才能真正达成ASIL D目标。这为系统工程师与功能安全经理提供了可落地的技术路径。

weixin_33806300的博客 347

OO1-3总结

大一时听学长学姐说计组、OO,心里还是蛮怕的。因为数据结构GG了,所以对于写程序提交测评的课都感觉很虚。计组做下来感觉还好,头发还在(也就通宵了一次熬了几次夜)。OO刚开始的时候遇到了很多问题,有请他们出列: ·不会java:从没有接触过java,也没有去上前导课,所以还要边看教程边想程序怎么写,想到的方法需要怎样转化成java的实现。(梦拓早建议我们学学java,然而玩过去了) ·面向过程的...

weixin_34061555的博客 81

第二周学习总结

第二周学习总结 学习正式步入了正轨,这周我们学习了this关键字,1、this访问属性。通过this关键字可以明确地去访问一个类的属性,解决与局部变量名称的冲突问题2、this访问成员方法。在类中调用自己的成员方法,也可以使用this关键字,通过“this.方法名”的方式调用。3、this访问构造方法。构造方法在实例化对象时会被.Net运行环境自动调用,因此,在程序中不能像调用其他方法一样去调用...

weixin_34007879的博客 141
上一篇: 内联函数、auto关键字、范围for和nullptr
下一篇: 运算符重载和初始化列表
宴之敖者、
博客等级 码龄4年 131粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值