qt学习篇---C++基础学习

本学习笔记学习下面视频总结,感兴趣可以去学习。讲的很详细

【北京迅为】嵌入式学习之QT学习篇_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1tp4y1i7EJ/?spm_id_from=333.337.search-card.all.click&vd_source=8827cc0da16223b9f2ad8ae7111de9e2

目录

C++

1.C++和C语言区别

2.C++的类

3.什么是对象

4.类的函数成员

5.类的访问修饰符

C++基本特性

1.类函数的重载特性

2.构造函数和析构函数

3.类的继承

4.虚函数和纯虚函数


C++

1.C++和C语言区别

c++是面向对象,c语言是面向过程

比如直接计算a+b是面向过程,给a+b穿上一层衣服就是面向对象,不是直接相加。

2.C++的类

c结构体升级版,类成员不止可以是变量也可以是函数。

定义:

class student
{
public:          //类的访问修饰符char name[64];int age;
};

3.什么是对象

类的实例化。

//直接定义
student my;   //student就是类,my就是对象   
//在堆里面定义
student *my = new student;

//C++中进行动态内存分配的一个例子。它在堆上创建了一个新的"student"类的对象,并将该对象的地址赋给指针变量"my"。这样可以让你使用超出对象创建函数或块的范围的对象。只需记得在使用完对象后使用"delete"关键字来正确释放内存,以防止内存泄漏

访问和c一样

    student my;student *my1 = new student;my.age = 18;my1->age = 19;cout << my.age <<endl;cout << my1->age <<endl;

堆(heap)和栈(stack)是两种不同的内存分配方式,它们在内存中的位置和分配方式有所不同。

栈是一种线性的数据结构,它是一块连续的内存空间,存储程序在运行过程中的临时数据和函数调用。栈的大小受限于系统设置的栈大小,通常比较小,变量的分配和释放是自动的,由系统自动管理,每次只能访问栈顶元素。

       

堆是一种动态分配的内存空间,它的大小不受限制,程序员可以根据需要动态分配和释放内存。堆的内存分配和释放由程序员手动管理,需要注意内存泄漏的问题。

在C++中,使用new和delete操作符可以分别在堆上动态分配内存和释放内存;在Java中,使用new关键字来在堆上创建对象,而垃圾收集机制会负责释放内存。

4.类的函数成员

第一步:在类里面声名

第二步:实现这个函数。我们可以直接在类里面写,也可以在写在类的外面。

直接写在类里面

class student
{
public:char name[64];int age;void test(){cout << 123 <<endl;};
};

类外面

student::表示属于这个类里面的函数,不这样的话会识别成普通函数

class student
{
public:char name[64];int age;void test();
};
void student::test(){cout << 123 <<endl;
};

访问函数和访问变量是一样的。

5.类的访问修饰符

对类的成员进行权限管理。

public:表示函数和变量是公开的,任何人可以访问。

private:只能在自己的类里访问自己,不能通过对象来访问。

强行访问?先函数访问,再对象访问。可以输出。

protected:也是只能在自己的类里自己访问自己,但是可以被派生类来访问

C++基本特性

1.类函数的重载特性

我们可以在类里面定义同名的函数,但是参数不可以相同

class student
{
public:char name[64];int age;void test();void test(int i);private:int a;
};

重载函数在调用时会根据函数参数类型,然后去匹配相应的函数进行调用。如:

 my.test(20);

2.构造函数和析构函数

析构函数:假如我们定义了析构函数,当对象被删除或者生命周期结束,就会触发。

构造函数:假如我们定义了构造函数,对象被创建的时候就会触发。

构造函数可被重载,析构函数不行

 student *my1 = new student(10);

定义:

class student
{
public:student();char name[64];int age;void test();void test(int i);private:int a;
};student::student(){cout << "hello" <<endl;
};

触发两次打印两句hello

名字和类名一模一样;析构函数前面加~,构造函数不用。

student::~student(){cout << "hi" <<endl;
};

 

int main()
{//test();student my;student *my1 = new student;my.age = 18;my1->age = 19;cout << my.age <<endl;cout << my1->age <<endl;my.test(20);delete my1;return 0;

当对象被删除或者生命周期结束,就会触发。打印2个hi。

3.类的继承

允许在新的类里面继承父类的public还有protected部分,private不能被继承

 当觉得这个类不好的时候,可以使用类的继承,添加我们需要的功能。

class 儿子:public爸爸{public:.........protected:}
//例子
class mystudent:public student
{
public:int grade;};

 访问。也是通过.和->来访问

    my2.grade = 1;my2.age = 15;cout << my2.grade <<endl;cout << my2.age <<endl;

 

4.虚函数和纯虚函数

虚函数:有实际定义的,允许派生类对他进行覆盖式的替换(子类覆盖),virtual来修饰。

纯虚函数:,没有实际定义的虚函数就是纯虚函数

 virtual void test(); //虚函数virtual test(){}  //纯虚函数

怎么定义一个虚函数?

用virtual修饰,虚函数是用在类的继承上的。

虚函数优点

可以预留接口(覆盖),方便封装

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

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

相关文章

PDCA循环:持续精进的工具

文章目录 一、什么是PDCA二、PDCA的应用场景三、PDCA在信息系统项目管理中的应用 一、什么是PDCA PDCA循环是由美国质量管理专家沃特阿曼德休哈特&#xff08;Walter A. Shewhart&#xff09;在20世纪30年代提出的&#xff0c;最初用于制造业的质量管理。休哈特博士在构想PDCA…

【C++题解】1418. 求一个5位数的各个位之和

问题&#xff1a;1418. 求一个5位数的各个位之和 类型&#xff1a;基本运算、拆位求解 题目描述&#xff1a; 从键盘读入一个 5 位的正整数&#xff0c;请求出这个 5 位数的各个位之和。 输入&#xff1a; 一个 5 位的正整数 n 。 输出&#xff1a; 这个 5 位数的各个位之…

Aiseesoft Blu-ray Player for Mac:蓝光播放器

Aiseesoft Blu-ray Player for Mac是一款功能强大且易于使用的蓝光播放器&#xff0c;专为Mac用户打造。它以其卓越的性能和简洁的操作界面&#xff0c;为用户带来了全新的高清蓝光播放体验。 Aiseesoft Blu-ray Player for Mac v6.6.50激活版下载 这款软件支持播放任何高质量的…

ArcGIS Pro3.0软件破解版安装教程

软件名称&#xff1a;ArcGIS Pro 3.0 安装环境&#xff1a;Windows 软件大小&#xff1a;7.3GB 硬件要求&#xff1a;CPU2GHz&#xff0c;内存4G(或更高) 百度云下载链接 &#xff1a; https://pan.baidu.com/s/1CXy1MSwdQXdVnJoV2X422A 提 取 码 &#xff1a;r0w1 教学内…

AI图书推荐:ChatGPT写论文的流程与策略

论文一直是任何学术学位的顶峰。它展示了学生在研究领域的兴趣和专业知识。撰写论文也是一个学习经验&#xff0c;为学术工作以及专业研究角色做好准备。但是&#xff0c;论文工作总是艰苦的&#xff0c;通常是充满乐趣和创造性的&#xff0c;但有时也是乏味和无聊的。生成式人…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

采用前后端分离Vue,Ant-Design技术开发的(手麻系统成品源码)适用于三甲医院

开发环境 技术架构&#xff1a;前后端分离 开发语言&#xff1a;C#.net6.0 开发工具&#xff1a;vs2022,vscode 前端框架&#xff1a;Vue,Ant-Design 后端框架&#xff1a;百小僧开源框架 数 据 库&#xff1a;sqlserver2019 系统特性 麻zui、护理、PACU等围术期业务全覆…

FreeRTOS学习——FreeRTOS队列(上)

本篇文章记录我学习FreeRTOS队列的相关知识&#xff0c;主要包括队列简介、队列的结构体、队列创建等知识。 队列是为了任务与任务、任务与中断之间的通信而准备的&#xff0c;可以在任务与任务、任务与中断之间传递消息&#xff0c;队列中可以存储有限的、大小固定的数据项目。…

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time 问题描述解决办法方式一方式二 小结 问题描述 在Android应用开发过程中&#xff0c;经常需要自定义控件&#xff0c;并且定义控件的属性&#xff0c;方便灵活的修改控件的显示样式&#xff0c;提…

IT廉连看——UniApp——样式绑定

IT廉连看——UniApp——样式绑定 一、样式绑定 两种添加样式的方法&#xff1a; 1、第一种写法 写一个class属性&#xff0c;然后将css样式写在style中。 2、第二种写法 直接把style写在class后面 添加一些效果&#xff1a;字体大小 查看效果 证明这样添加样式是没有问题的…

【提示学习论文】PMF:Efficient Multimodal Fusion via Interactive Prompting论文原理

Efficient Multimodal Fusion via Interactive Prompting&#xff08;CVPR2023&#xff09; 基于交互式提示的高效多模态融合方法减少针对下游任务微调模型的计算成本提出模块化多模态融合架构&#xff0c;促进不同模态之间的相互交互将普通提示分为三种类型&#xff0c;仅在单…

websocket 单点通信,广播通信

Websocket协议是对http的改进&#xff0c;可以实现client 与 server之间的双向通信&#xff1b; websocket连接一旦建立就始终保持&#xff0c;直到client或server 中断连接&#xff0c;弥补了http无法保持长连接的不足&#xff0c;方便了客户端应用与服务器之间实时通信。 参…

大数据005-hadoop003-了解MR及Java的简单实现

了解MapReduce MapReduce过程分为两个阶段&#xff1a;map阶段、reduce阶段。每个阶段搜键-值对作为输入和输出。 要执行一个MR任务&#xff0c;需要完成map、reduce函数的代码开发。 Hellow World 【Hadoop权威指南】中的以分析气象数据为例&#xff0c;找到每年的最高气温。…

Jenkins持续化集成

优质博文&#xff1a;IT-BLOG-CN 工作过程如下环境准备 开发人员提交代码>jenkins获取代码>调用单元测试>打包>发布 环境准备Jenkins的安装 Tomcat、Maven、Git或Svn、Jdk Jenkins的安装 1、官网下载war &#xff1a;http://Jenkins-ci.org/ 2、tomcat-users.…

NTFS文件权限管理

实验环境 windows server 2016 实验要求 实验步骤 1、 新建文件 2、打开文件夹的属性->安全->高级 3、禁用继承 4、添加组或用户 技术资料&#xff1a; 常用软件&#xff1a; 手机端项目&#xff1a; 电脑端项目&#xff1a; 公司制度&#xff1a; 销售资源&#xff…

【Scala---01】Scala『 Scala简介 | 函数式编程简介 | Scala VS Java | 安装与部署』

文章目录 1. Scala简介2. 函数式编程简介3. Scala VS Java4. 安装与部署 1. Scala简介 Scala是由于Spark的流行而兴起的。Scala是高级语言&#xff0c;Scala底层使用的是Java&#xff0c;可以看做是对Java的进一步封装&#xff0c;更加简洁&#xff0c;代码量是Java的一半。 因…

JAVA读取从WPS在Excel中嵌入的图片资源

读取从WPS在Excel中嵌入的图片资源 引言 许多数据文件中可能包含嵌入式图片&#xff0c;这些图片对于数据分析和可视化非常重要。然而&#xff0c;从 WPS 在 Excel 中读取这些图片可能会有一些技术挑战。在本文中&#xff0c;我将展示如何从 WPS Excel 文件中读取嵌入的图片&am…

海外三大AI图片生成器对比(Stable Diffusion、Midjourney、DALL·E 3)

Stable Diffusion DreamStudio 是Stable Diffusion 的官方网页&#xff0c;价格便宜&#xff0c;对图片的操作性强&#xff0c;但同时编辑页面不太直观&#xff0c;对使用者的要求较高。 与 DALLE 和 Midjourney 不同&#xff0c;Stable Diffusion 是开源的。这也意味着&…

linux tcpdump的交叉编译以及使用

一、源码下载 官网&#xff1a;点击跳转 二、编译 1、解压 tar -xf libpcap-1.10.4.tar.xz tar -xf tcpdump-4.99.4.tar.xz 2、配置及编译 //libpcap&#xff1a; ./configure --hostarm-linux --targetarm-linux CCarm-linux-gcc --with-pcaplinux --prefix$PWD/build//t…

企业如何保证内部传输文件使用的工具是安全的?

企业内部文件的频繁交换成为了日常运营不可或缺的一环。然而&#xff0c;随着数据量的爆炸式增长和网络攻击手段的日益复杂&#xff0c;内网文件传输的安全隐患也日益凸显&#xff0c;成为企业信息安全的薄弱环节。本文将探讨内网文件传输的安全风险、企业常用的防护措施。 内网…