C++编程基础的学习

news2024/11/25 14:47:03

Qt跨平台特性

在深入探讨C++编程的基础知识之前,我们首先需要了解Qt框架的跨平台特性。Qt是一个功能强大的跨平台应用程序框架,它允许开发者编写一次代码,然后在多个平台上运行,包括Windows、macOS、Linux、iOS、Android等。这种跨平台能力极大地提高了开发效率和应用的可移植性。

C++基础概念

运算符

在C++中,<<被称为插入运算符,通常用于向输出流中插入数据;而>>是提取运算符,用于从输入流中提取数据。

auto关键字

auto关键字用于让编译器自动推断变量的类型。然而,形参的数据类型不能使用auto自动类型推断。

引用与指针

引用是C++中的一个重要概念,它为变量提供了一个别名。

这里取地址ref就相当于给i取个别名(引用)

使用引用时,需要注意两点:

  1. 引用必须初始化。
  2. 一旦引用被绑定到某个变量上,这种关系就无法拆解。

与指针不同,引用不能被改变,即不能重新指向另一个变量。此外,引用必须在声明时立即初始化,而指针则没有这个要求。

内联函数

内联函数是一种特殊的函数,它可以在编译时被插入到每个调用该函数的地方,从而减少函数调用的开销。使用inline关键字可以声明一个内联函数。

这里两个函数被隐含的声明为内联函数

函数默认参数

函数可以有默认参数值,如果在函数调用时没有提供这些参数,则会使用默认值。此外,函数参数可以部分提供,按照从左至右的顺序。

可以传参,不传的话是默认值

也可以指只传一个参数,从左至右传

函数重载

函数重载允许存在多个同名函数,只要它们的参数列表不同。编译器会根据提供的参数类型选择正确的函数版本。

这里会调用第一个函数

第二个fn要求传变量

这里也调第一个

这里调第二个

面向对象的四大特性

  • 抽象

  • 封装

  • 继承

  • 多态

访问控制

C++中的类成员可以有不同的访问级别:

  • public:可以被任何外部代码访问。
  • protected:可以被类本身和其子类访问。
  • private:只能被类本身访问。

通常,将公有成员放在类定义的前面,以提高代码的可读性。

类的实现

类的成员函数可以在类定义外部实现。如果类是分开文件编写的,成员函数的定义通常放在.cpp文件中。需要注意的是,函数的大小并不计入类的大小。

这种形式,可以在circle外面定义类里面的函数

类分文件写的话要写在.h文件里面

但是如果是在外面定义类型里面的函数的话要写在对应的.c文件里面

构造函数和初始化列表

C++中的构造函数可以带参数,也可以使用初始化列表来初始化成员变量。初始化列表提供了一种高效的方式来初始化对象,它只能在构造函数中使用。

Sizeof(clock)大小是12,函数并不在Clock类里占用字节

C++:可以int i(100),因为int也算一个类

类里面其实默认有clock(){

}函数的,他什么都不做

这种clock定义方法是初始化:初始化列表

这种是赋值

初始化效率高一些

只能在构造函数中使用,其他地方用不行

复制构造函数

复制构造函数是一种特殊的构造函数,用于创建一个对象的副本。如果开发者没有提供自定义的复制构造函数,编译器会生成一个默认的版本。

C2调了构造,但是不是你自己写的构造函数(复制构造、拷贝构造)

下面还有两种情况要调用复制构造

情况2

情况3

写法:

运行结果:

析构函数

析构函数是类的销毁函数,它在对象生命周期结束时被调用。析构函数不能带有参数,且析构的次数应该等于或小于构造的次数,否则可能发生内存泄漏。

析构函数:

析构次数小于等于构造次数,小于可能是内存泄露

析构函数不能带参数

总结

C++是一种功能丰富且复杂的编程语言,它提供了强大的特性来支持面向对象编程。通过理解C++的基础概念和特性,开发者可以更有效地编写高质量、可维护的代码。同时,Qt框架的跨平台特性为C++开发者提供了一个强大的工具,以创建可在多个平台上运行的应用程序。

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

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

相关文章

Linux网络编程3

并发服务器 1.TCP多进程并发服务器 服务器端&#xff1a; 客户端&#xff1a; 2.TCP多线程服务器 服务器端&#xff1a; 客户机端&#xff1a; 需要学习的函数还有 1. send() 函数 send() 函数用于在套接字上发送数据。它是网络编程中发送数据到对端的主要函数之一。 函数…

人像修图-高低频磨皮

原理 将图像分成高频图层&#xff08;处理纹理细节&#xff09;和低频图层&#xff08;处理光影和光影&#xff09;&#xff0c;以达到修饰时互不干扰 步骤 复制两个图层 在低频图层建立高斯模糊&#xff1a;滤镜->模糊->高斯模糊。注意半径一般根据皮肤占比&#xf…

day 20进程

一、程序和进程的区别 程序&#xff1a;保存在磁盘空间中的的一段代码的集合&#xff0c;死的 进程&#xff1a;是一个程序动态执行的过程&#xff0c;包括进程的创建、调度和消亡的过程 二、进程相关的命令 PID:进程的标识符(进程的ID) PPID:父进程的ID号 三、进程的创建…

redis的数据结构与对象

简单动态字符串 文章目录 简单动态字符串SDS的定义SDS的结构图示结构SDS字段解析SDS的特点 SDS和字符串的区别常数复杂度获取字符串的长度杜绝缓冲区的溢出减少修改字符串时的内存分配次数二进制安全兼容部分c字符串函数总结 链表链表和链表节点的实现链表节点&#xff08;list…

全球手机基站位置数据,包含(2G-5G)基站

OpenCellID 是一个由社区维护的项目&#xff0c;它提供了一个开放的数据集&#xff0c;包含全球各地的移动通信基站信息。这个项目对于需要获取蜂窝网络基础设施详细信息的研究人员、开发者以及组织来说非常有用。这些信息可以被用来进行各种分析和应用开发&#xff0c;例如改进…

Python 在开发中的设计模式有哪些?怎样使用?

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 今天我们要聊点硬核的——设计模式。不过&#xff0c;不用担心&#xff0c;我会带着热情来跟你分享这些看似枯燥的知识点。让我们一起从“代码搬砖工”蜕变成“代码艺术家”吧&#xff…

Redis面试题大全

文章目录 Redis有哪几种基本类型Redis为什么快&#xff1f;为什么Redis6.0后改用多线程?什么是热key吗&#xff1f;热key问题怎么解决&#xff1f;什么是热Key&#xff1f;解决热Key问题的方法 什么是缓存击穿、缓存穿透、缓存雪崩&#xff1f;缓存击穿缓存穿透缓存雪崩 Redis…

python爬虫预备知识三-多进程

python实现多进程的方法&#xff1a;fork、multiprocessing模块创建多进程。 os.fork方法 os.fork方法只适合于unix/linux系统&#xff0c;不支持windows系统。 fork方法调用一次会返回两次&#xff0c;原因在于操作系统将当前进程&#xff08;父进程&#xff09;复制出一份…

ESP8266使用舵机以及16路PWM舵机PCA 9685的使用方式

PWM全称 50Hz也就是一秒内变换50次 根据上面的公式 一个高电平一个低电平叫一个脉冲。 例如每个脉冲占20毫秒&#xff0c;那么他的频率是多少&#xff1f; 就是用1去除以他的周期&#xff0c;也就是我们上面说的20&#xff0c;那么就是除0.02,1秒等于1000毫秒&#xff0c;20…

网络安全 - 应急响应检查表

前言 本项目旨在为应急响应提供全方位辅助&#xff0c;以便快速解决问题。结合自身经验和网络资料&#xff0c;形成检查清单&#xff0c;期待大家提供更多技巧&#xff0c;共同完善本项目。愿大家在应急之路一帆风顺。 图片皆来源于网络&#xff0c;如有侵权请联系删除。 一…

南山智尚10亿元定增质疑声连连,与控股股东超70亿资金往来引瞩目

《港湾商业观察》施子夫 王璐 近期&#xff0c;南山智尚&#xff08;300918.SZ&#xff09;发布了《向特定对象发行A股股票募集说明书(修订稿)》。 据了解&#xff0c;公司此次拟募集资金总额不超过10亿元&#xff0c;扣除发行费用后的募集资金净额将全部用于年产8万吨高性能…

鸿蒙HarmonyOS实战:ArkUI组件添加内容背景模糊效果

动画效果可以丰富界面的细节&#xff0c;提升UI界面的真实感和品质感。例如&#xff0c;模糊和阴影效果可以让物体看起来更加立体&#xff0c;使得动画更加生动。ArkUI提供了丰富的效果接口&#xff0c;开发者可快速打造出精致、个性化的效果。本章中主要对常用的模糊、阴影和色…

速卖通、Lazada、虾皮卖家是如何自建买家账号测评的?

在跨境电商领域&#xff0c;速卖通、Lazada、Shopee等平台上的卖家为了提升店铺信誉、提高产品排名和销量&#xff0c;常常需要借助买家账号进行测评。然而&#xff0c;依赖外部服务商往往存在风险&#xff0c;如账号质量参差不齐、恶意差评等问题。因此&#xff0c;自己养国外…

Crowd-SAM:SAM作为拥挤场景中目标检测的智能标注器

摘要 目标检测是一项重要任务&#xff0c;广泛应用于各种场景。通常&#xff0c;它需要大量的标签进行训练&#xff0c;这相当耗时&#xff0c;尤其是在拥挤的场景中。最近&#xff0c;Segment Anything Model&#xff08;SAM&#xff09;作为一种强大的零样本分割器应运而生&…

数学中常用字母符号读法

文章目录 一、希腊字母二、其他字母1.字母上一横2.拉长的s&#xff08;‌∫&#xff09;‌3.数列中的e4. N:非负整数集合或自然数集合{0,1,2,3,…n} 一、希腊字母 Ω ω&#xff1a;欧米伽 Omega。 ∑ σ&#xff1a;西格玛 Sigma。 作用&#xff1a;是一个求和符号&#xf…

滑动窗口专题——找到所有字母的异位词

一、题目解析&#xff1a; 题意如图 二、算法分析 本题依旧是两种方法&#xff1a;暴力枚举、滑动窗口 暴力枚举&#xff1a; 枚举出所有的字串进行比较&#xff0c;符合则记录位置&#xff0c;最终返回结果数组。 滑动窗口哈希表&#xff1a; 思路&#xff1a;1、初始化左…

怎么区分Alpha因子和风险因子?

这是一个絮絮叨叨的专题系列&#xff0c;跟大伙儿唠一唠量化相关的小问题&#xff0c;有感而发写到哪算哪&#xff0c;这是第3期&#xff0c;来唠个14块钱的~ 不知大伙儿有木有这样的疑惑&#xff1f; 看到Barra里面有Size、Liquid等因子&#xff0c;这些因子同样出现在很多人的…

【Redis】String字符串

目录 String字符串 常见命令 SET GET MSET MGET SETNX 计数命令 INCR INCRBY DECY DECYBY INCRBYFLOAT 其他命令 APPEND GETRANGE SETRANGE STRLEN 内部编码 String类型的典型使用场景 缓存(Cache)功能 计数功能 共享会话(Session) String字符串 字符…

bat批处理文件 —— 用于自动化环境配置和项目执行

文章目录 一、什么是 bat &#xff1f;1.1、支持 bat 的编辑软件1.2、常用命令 三、项目实战3.1、入门案例3.2、&#xff08;自动化&#xff09;环境配置与python库安装3.3、将 bat 当成一个简易的 .exe 可执行文件 四、标识符详解4.1、rem&#xff1a;添加注释4.2、echo off&a…

网工内推 | 上市公司IT工程师,最高15薪,周末双休

01 上海索辰信息科技股份有限公司 &#x1f537;招聘岗位&#xff1a;IT工程师 &#x1f537;岗位职责&#xff1a; 1、熟悉代码研发类企业的内部信息化管理&#xff0c;参与公司自主开发系统的规划和建设&#xff0c;搭建高级别内部信息安全体系&#xff0c;对内部信息的安全…