C++核心编程和桌面应用开发 第一天

news2024/9/21 18:01:13

目录

1.C++的编程方式

2.双冒号::运算符

3.命名空间

3.1作用

3.2命名空间内的东西

3.3注意事项

4.using的用法

4.1using的声明

4.2using编译指令

5.C++相较于C的增强

5.1全局变量检测增强

5.2函数检测增强

5.3类型转换检测增强

5.4结构体增强

5.5三目运算符增强

5.6const增强

6.内联函数

7.默认参数


1.C++的编程方式

①面向过程

②面向对象(封装、继承、多态)

③面向泛型编程

2.双冒号::运算符

::用于指定特定的命名空间或类

如果什么都不加,代表全局作用域

3.命名空间

3.1作用:

若引用的两个头文件内,分别存在两个同名的函数,但实现内容并不同,在文件中调用时,就无法分清楚,用命名空间可以解决

3.2命名空间内的东西:

变量、函数、结构体、类......

3.3注意事项:

4.using的用法

4.1using的声明

4.2using编译指令:

5.C++相较于C的增强

5.1全局变量检测增强

5.2函数检测增强

5.3类型转换检测增强

C语言下,不同类型的指针可以直接赋值,C++不可以

不同类型指针之间赋值,可以利用强制类型转换

int* p1=NULL;
char* p=p1;

5.4结构体增强

  • C下,结构体中不能有函数的声明或定义,不可以给变量赋初值,创建结构体变量,必须带struct关键字;
  • C++下,结构体中可以有函数的声明或定义,可以给变量赋初值,创建结构体变量,可以不带struct关键字。

5.5三目运算符增强

C下,三目运算符返回的是值,而C++下返回的是变量

int a=10;
int b=20;
(a>b?a:b)=100;

C下,返回的是值,即20=100,是错误的

C++下,返回的是b,即b=100,赋值成功

5.6const增强

  • C下,全局变量前加const,该变量存储在常量区,无法修改;局部变量前加const,该变量存储在栈区,可以利用指针修改;
  • C++下,全局变量前加const,该变量存储在常量区,无法修改;局部变量前加const,该变量存储在符号表,也无法修改。

const的链接属性:

  • C下,全局变量前加const,该变量默认外部链接属性,在其他文件中可以使用;
  • C++下,全局变量前加const,该变量默认内部链接属性,在其他文件中不可以使用,可以用extern关键字提高变量的作用域。

6.内联函数

函数的定义和声明都要加上inline

预定义宏的概念是用内联函数实现的,内联函数也会像预定义宏展开,不需要函数调用的开销

结论:以空间换时间,解决了宏函数的缺陷

内联函数与编译器:

7.默认参数

①前面参数有默认参数值后,后面的参数也必须有

②函数声明和定义如果是分开写的话,不能同时设定默认参数

 

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

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

相关文章

如何高效阅读论文呢???

论文题目《多模态数据融合研究综述》,介绍了多模态数据融合技术以及对齐方法,最后是展望以及未来的发展。 泛读这篇论文不在状态,求助前辈们该如何高效的阅读论文呢?(我是刚入学的研一学生,对于读论文这块…

【H2O2|全栈】关于CSS(2)CSS基础(二)

目录 CSS基础知识 前言 准备工作 选择器的组合 盒模型 示例网页代码 后代选择器 亲代选择器 相邻兄弟选择器 后续兄弟选择器 多个元素选择器 通配符选择器 优先级 其他应用 伪类 锚链接的属性 列表的属性 list-style-type list-style-position list-style…

1.任务的创建与状态

1.什么叫现场? 就是程序暂停瞬间所有寄存器的值 2.如何"保存现场"? 就是把"所有寄存器"保存进哪里? 保存进"内存",这块内存被称为栈 3.栈来自哪里? a.在FreeRTOS里定义了一个大数组 b.FreeRTOS里的malloc函数,从这个大数组里分配内存 c.创…

MySQL一:在Ubuntu下安装MySQL数据库

目录 前言 1.查看操作系统版本 2.添加MySQLAPT源 2.1下载发布包 ​编辑 2.2安装发布包 3.安装MySQL 4.查看MySQL状态 5.开启自启动 ​编辑 6.登录MySQL 前言 操作系统版本为Ubuntu 22.04.6LTS 1.查看操作系统版本 lsb_release -a 2.添加MySQLAPT源 2.1下载发布包 M…

【深度学习】神经网络-怎么分清DNN、CNN、RNN?

怎么分清DNN、CNN、RNN? 最“大”的概念是人工神经网络(Artificial Neural Network, ANN),它是较为广泛的术语,通常指的是一类模拟生物神经网络的数学模型,其中包括神经元、权重和连接。在这个术语下&#…

~数据分析知识分享~

近来有一些小伙伴咨询数据分析相关的一些知识内容 我收集了一些相关信息 在这里简单做一些分享和介绍,后续有相关的内容我也会持续的更新!感谢大家的支持与陪伴! 拆解问题一个原则四类方法 数据分析工程技术 数据分析四种类型 六个方向 分析…

[000-002-01].第03节:Linux系统下Oracle的安装与使用

2.1.Docker安装Oracle 在CentOS7中使用Docker安装Oracle: 1.安装Docker,详细请参考:https://blog.csdn.net/weixin_43783284/article/details/1211403682.拉取镜像: docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g3.下载…

Zookeeper下载与安装教程(国产化生产环境无联网服务器部署实操)

请放心观看,已在正式环境部署验证,流程无问题! 此外,建议更换默认的2181端口,避免后期服务器漏扫麻烦,不少漏扫软件是扫描到默认端口后给出漏洞报错!我所用服务器环境是麒麟银河aarch64系统&am…

Navicat 17 新特性 | 聚焦 MongoDB

随着 Navicat 17 的盛大发布,其一系列创新特性赢得了广大用户的热烈反响。它不仅在模型设计上实现了突破性优化,提升了查询与配置的效率,还大幅优化了用户界面的交互体验,原生支持国产平台与操作系统,同时增强 BI 能力…

UE场景根节点非静态 Landscape Root Component is Not Static 问题解决

错误截图 RenderQueue(影片渲染队列)渲染卡顿、黑屏,打开log查看到如下图所示报错: 错误原因 一种错误原因是你在操作sequence时无意中把landscape写入到了sequence中,有变换(transform)轨道…

MySql注入之Bypass总结

在真实的渗透测试环境中,经常会遇到被WAF拦截的情况,如果不知道怎么绕过WAF,想要继续渗透就很难了,因此,今天来总结一下 mysql 注入时,如何绕过WAF。 一、测试环境 集成环境: phpStudy数据库: mysql 5.7H…

第十八节:学习统一异常处理(自学Spring boot 3.x的第五天)

这节记录下如何通过AOP方式统一处理异常拦截。 第一步: 新建一个exception包,创建一个ExcetionHandler.java(名字随意取) package cn.wcyf.wcai.exception;import cn.wcyf.wcai.common.Result; import org.springframework.web…

双顶堆算法求中位数——从LeetCode题海中总结常见套路

前言:双顶堆算法求是非常经典的一种求中位数算法,是堆必知必会的经典知识点。具体来说,就是如何求出数据流中的中位数。数据流的特点是高速插入,数据会不断涌入结构中,那么也就面临着需要多次动态调整以获得中位数。我们需要保证最大效率的情况下求出中位数,当然不能全部…

Pycharm 输入三个引号没有自动生成函数(方法)注释

配置项路径:pycharm–>Settins–>Tools–>Python Integrated Tools–>Docstrings–>Docstrings format选择对应的工程,如果有多个工程的话将 Docstrings format 的值从 Plain 换成 reStructuredText

Jupyter Notebook | 安装 rise 插件后显示幻灯片失败

目录 1 问题描述2 解决步骤 1 问题描述 下图目录中的 .ipynb 文件都能以幻灯片的形式展现: 但是跟着 03 安装【动手学深度学习v2】 安装好 rise 插件后,并不能进入幻灯片模式。后来发现是 Jupyter Notebook 版本和 Python 版本不匹配的问题&#xff…

全国历年高考真题2008-2024

目录 分享链接: ⬇️⬇️⬇️ 点击下载

2024.9.11 作业

使用绘制事件完成钟表的绘制 源文件 #include "widget.h" #include "ui_widget.h" #include <QDateTime> //日期事件类 #include <QTimer> #include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget…

AI论文精读笔记-Generative Adversarial Nets(GAN)

1. 论文基本信息 论文标题&#xff1a;Generative Adversarial Nets 作者&#xff1a;Ian J. Goodfellow,∗ Jean Pouget-Abadie,† Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair,‡ Aaron Courville, Yoshua Bengio 发表时间和期刊&#xff1a;2014.06&#xf…

Java数据结构(十)——冒泡排序、快速排序

文章目录 冒泡排序算法介绍代码实现优化策略复杂度和稳定性 快速排序算法介绍优化策略非递归实现代码演示复杂度和稳定性 冒泡排序 算法介绍 冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就交换。遍历…

【FICO】SAP财务模块中的统驭科目及特别总账详解

前言 统驭科目作为SAP FICO财务模块中专有的一个概念&#xff0c;很好地展示了SAP ERP系统在设计模式中的精妙性。在本文中&#xff0c;笔者将详细地介绍统驭科目的设计初衷&#xff0c;作用以及如何在系统中进行使用。 统驭科目的设计初衷 统驭科目是如何进行核算的&#xff…