C++学习之路(一)

第一章:C++语言概述

前言:这里学习C++教材是选用的清华大学出版社的《C++语言基础教程》第二版,该版本语言较为通俗易懂,概念清晰,便于理解。因为之前学习过C语言,因此在学习本书之际,也是抱着一遍复习c语言,一遍深入学习C++原理,重点将“指针”、“面向对象”、“类和对象”、“继承性和派生类”、“多态性和虚函数”等概念深入理解,并多做习题巩固,多上机编程,提升代码能力。

同时配套的慕课有:学堂在线平台 清华大学 郑莉教授 C++语言程序设计基础(2021秋)

在这里插入图片描述

1.1 C++语言是一种面向对象的程序设计语言

什么是面向对象?面向对象与面向过程有何区别?

首先,我们先了解对象的概念,对象是软件系统的基本构成单位,对象是对客观世界中实际存在的某种事物的抽象,即:描述客观事物的一个实体。对象是一组属性和一组行为的集合,属性用来描述对象的静态特性,用若干数据表示;行为则描述对象动态特性,用若干操作表示,即数据与操作的集合。

而面向对象总体来讲则是:运用一些新概念和新方法构造系统的软件开发方法,这些新概念包括对象、类、封装、聚合、继承、多态性等,这些也体现了面向对象的特点。

面向过程:即以过程为中心的编程思想,主要的特点是模块化编程,比如:小明起床去学校,可以分解为四步流程:(1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校

面向对象则是将每个元素抽象成对象,对象有自己的属性,关注对象的行为,而并非这个事件。

同时面向对象有多种新概念,新方法需要理解:
1.类:类是一种类型,是对具有相同属性对象的描述,类是创建对象的样板,包含着所创建对象的数据描述和操作定义,类是一种具有共同属性、行为的若干对象的统一描述体。
分类是其主要特点。
2.封装:即将对象的属性和行为结合为一个封装体,其中,属性由若干不同类型数据组成,对象的行为由若干操作组成。操作是通过函数实现,又称为方法。
3.聚合:聚合是类之间的一种包含关系,一个复杂类可以由若干简单的对象组成,其中的方法成为聚合。例如:描述一架飞机,可以将飞机拆分为机翼、机身、机尾、发动机等多干部位。
4.继承:是创建新类的一种方法,继承用来解决一般类和特殊类的关系,其中,特殊类具有一般类的属性和行为,并且它还有自己特殊的属性和行为,这时称特殊类是对一般类的继承。
在软件开发中,可将已经开发好的类存放到类库内,开发新系统时,便可直接使用或继承使用已有的类。继承可以减少冗余性,提高重用性。减少编程工作量,提高编程质量。
5.多态性:即一对多的状态,一个函数名或同一个运算符对应于不同的实现或功能。

综上所述:面向对象的方法归纳以下几点:
(1):将客观事物中抽象出的数据和方法构成一个集合体,便是对象。
(2):将相同类型中对象抽象出共性,形成类。类具有封装性和隐藏性。
(3):类是一个封装体,类中多数数据只能通过本类的方法进行处理,这些数据在类外不可见,无法访问。
(4):类是通过外部接口与外界进行发生关系,这些外部接口提供了类的行为。
(5):对象之间通过消息进行通信。

1.2 C++语言对面向对象程序设计方法的支持

1.C++支持数据封装
2.C++语言的类中包含私有、公有和保护成员
3.C++语言中通过发送消息处理对象
4.C++语言中允许友元破坏封装性
5.C++语言允许函数名和运算符重载
6.C++语言支持继承性
7.C++语言支持动态联编

C++语言与C语言差别在于:C++语言是面向对象,而C语言是面向过程,C++语言在对C语言改进的基础上,又增添了支持面向对象的新内容。

1.3 C++语言的词法和词法规则

1.C++语言字符集
2.单词及词法规则
(标识符、关键字、运算符、分隔符、常量、注释符)
在这里插入图片描述

在这里插入图片描述
注:存放在内存中的字符串常量最后有一个结束符,即空字符,它用转义序列方法表示:‘\0’

1.4 C++语言程序结构特点

与C语言结构有部分不同,例如提取符:“>>”,插入符:“<<”,输入输出:cin>>(变量1)>>(变量名2)…;
输出操作:cout<<(表达式1)<<(表达式2)…;

下面展示C++语言的一个示范程序:

#include<iostream>
#include<cstdlib>
int main()
{double x,y;std::cout<<"Enter two float numbers:";std::cin>>x>>y;double z=x+y;std::cout<<"x+y="<<z<<std::endl; system("pause") ;return 0;} 

运行程序,输入7.2 9.3 换行得到结果:x+y=16.5
如下图:
在这里插入图片描述

注:编译软件为dev c++ 或 visual c++

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

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

相关文章

你社交网站上的照片,也许已经被用来训练人工智能了

来源&#xff1a;网易智能斯特于2013年拍摄的这张照片被收录在IBM的人像数据集&#xff08;Diversity in Faces&#xff09;中毫无疑问&#xff0c;这张家庭照片是非常可爱的:照片中的爸爸留着短须&#xff0c;戴着无框眼镜&#xff0c;棕色头发的妈妈咧着嘴笑着。他们正和两个…

Python 学习编程 【for语句breakcontinue语句使用】(一)

前言 我是跟着B站小甲鱼的视频教程中学习的&#xff0c;今天看了小甲鱼的十多个教学小视频&#xff0c;发现其讲课风格还是颇受同学们喜欢的&#xff0c;我也是很喜欢这种实践性教学&#xff0c;并且也常常开车&#xff0c;和普通的慕课风格是有很大不同的&#xff0c;这样也更…

刘锋:互联网50年,从“巨网”到“大脑”

摘要&#xff1a;本文是刘锋博士2019年受邀在《科学大众》为中学生撰写的科普文章&#xff0c;详细阐述了互联网如何在过去50年里发生了怎样的巨大变化&#xff0c;并深刻影响着人类社会和科技未来。(《科学大众》 创刊于1937年&#xff0c;是中国最早创办的科普期刊。创刊以来…

python学习---常见的内置字符串(二)

注&#xff1a;将字符串内置函数记录整理下&#xff0c;之后需要用到的时候便于查找学习。 1.capitalize() &#xff1a; 第一个字符变为大写 例子&#xff1a; str2 xiaoxie str2.capitalize() Xiaoxie截图&#xff1a; 2.casefold() :将所有字符串改为小写 str1 AAcc…

“数字化”才是智能制造的基础!

来源&#xff1a; 航空工业 摘要&#xff1a;所谓的机器换人只是低端工作&#xff0c;高端工作的智能绝大部分决策管理还是靠人来完成。机器换人仍只是自动化的老路&#xff01;以下精彩内容为中国航空工业信息技术中心首席顾问宁振波在近日举办的“第九届航空航天信息化建设合…

数字图像处理学习之路:图像变换(一)

数字图像处理归纳总结1.1 数字图像处理基础1.2 数字图像处理技术1.3 图像处理一般流程1.4 图像变换案例分析&#xff08;如真彩色图像转换为灰度图像&#xff09;1.1 数字图像处理基础 概述&#xff1a;数字图像处理是基于画面进行二维或三维物体模型的重建&#xff0c;利用计…

2019年中国科创板全面解读报告

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云…

雷达原理之 多普勒效应原理及应用(一)

多普勒效应&#xff1a;物体辐射的波长因为波源和观测者的相对运动而产生变化。 因为在运动的波源前面&#xff0c;波被压缩&#xff0c;波长变得较短&#xff0c;频率变得较高&#xff08;蓝移&#xff09;&#xff1b;在运动的波源后面时&#xff0c;会产生相反的效应。波长…

数字图像处理总结(冈萨雷斯版)

数字图像处理前六章知识点总结第一章&#xff1a;绪论第二章&#xff1a;数字图像基础第三章&#xff1a;灰度变换与空间滤波第四章&#xff1a;频率域滤波第五章&#xff1a;图像恢复与重建第六章&#xff1a;彩色图像处理第一章&#xff1a;绪论 1.数字图像概念&#xff1a; …

未来已来:5G将在这88个方面影响我们的工作和生活

来源&#xff1a;资本实验室作为备受瞩目的下一代移动通信网络&#xff0c;全球围绕5G的测试、布局与谈判不断升温。而与之相关的竞争也越发白热化&#xff0c;公司间的竞争、城市间的竞争、国家前的竞争&#xff0c;5G背负着太多的使命和期待。相比于4G通讯&#xff0c;5G不仅…

线性调频信号(LFM)的形式及幅度谱、相位谱特性

线性调频信号在SAR系统中非常重要&#xff0c;其瞬时频率是时间的线性函数。该信号常用于信号的发射&#xff0c;以获得均匀的信号带宽&#xff0c;在接收信号中则来自传感器运动。本篇博客主要讨论线性调频信号的形式&#xff0c;及在matlab仿真中的幅频特性和相频特性。 一、…

Android学习笔记----ArcGIS在线地图服务(Android API)坐标纠偏

仅限于如下ArcGIS在线地图服务&#xff08;高德提供数据&#xff09;&#xff1a; //概述&#xff1a;彩色中文含兴趣点版中国基础地图 //投影:WGS 1984 Web-Mercator //切片格式:MIXED90 //服务类型:基础地图服务 //数据提供商:高德软件有限公司 //数据获取时间:2014年秋季 //…

机器人领域十大前沿技术

来源&#xff1a;工业互联网观察近些年来&#xff0c;机器人行业发展迅速&#xff0c;机器人被广泛应用于各个领域尤其是工业领域&#xff0c;不难看出其巨大潜力。与此同时&#xff0c;我们也必须认识到机器人行业的蓬勃发展&#xff0c;离不开先进的科研进步和技术支撑。以下…

星载低波段极化SAR电离层法拉第旋转效应(FR)及校正国内外研究现状-学习笔记

相较于常规星载SAR&#xff0c;星载低波段极化SAR一方面具有较强穿透能力&#xff0c;能够探测植被和千层地表下的隐藏目标&#xff0c;另一方面&#xff0c;该系统对生物量更为敏感&#xff0c;能够观测森林资源的消长&#xff0c;对研究全球碳循环与气候变化的相互作用具有重…

星巴克、苹果、谷歌、亚马逊等巨头,为何同时做这件事?

综合整理&#xff5c;《中国企业家》记者 周夫荣编辑&#xff5c;马吉英摘要&#xff1a;除了星巴克之外&#xff0c;苹果、谷歌、亚马逊等高科技公司也早已在可持续能源领域悄然布局。除了经济原因和社会责任&#xff0c;这些公司或许有更深远的考量。当外界把星巴克视为咖啡大…

合成孔径雷达成像算法与实现(信号处理基础知识点)

最近由于学业上需要&#xff0c;重新学习了《合成孔径雷达成像算法与实现》一书&#xff0c;其中第二章是信号处理基础&#xff0c;在此记录下学习过程。 一、信号处理基本概念 1.卷积与相关 卷积&#xff1a; 相关: 卷积从几何解释&#xff1a;(1).生成h(u)的时间对称…

【深度学习】一文看尽深度学习各领域最新突破

来源&#xff1a;《产业智能官》想要了解深度学习各领域的最新进展&#xff1f;看个视频就足矣。该课程的PPT资料&#xff0c;下载地址如下&#xff1a;https://www.dropbox.com/s/v3rq3895r05xick/deep_learning_state_of_the_art.pdf?dl0本文所介绍的内容是MIT系列课程之一&…

实数序列频谱的共轭对称性(DFT与IDFT仿真实现)

一、基础知识 1、傅里叶变换&#xff1a;通俗来讲&#xff0c;是以时间为自变量的信号与以频率为自变量的“频谱函数”之间的某种转换关系。 DFT&#xff1a;即离散傅里叶变换&#xff0c;对离散序列进行傅里叶变换。设x(n)为长度为M的有限长序列&#xff0c;其N点DFT定义(公…

IOS本地化应用

BK项目已完成7788&#xff0c;在项目的后期需要被翻译成多国语言版。为了适应全球多个国家使用多个存储。 应用本地化是分别对字符串、图片和 xib 或 storyboard 文件本地化&#xff0c;而传统的做法是对 xib 上的字符串&#xff08;包含UILabel和UIButton、UITextField等&…

低轨通信卫星: 开启 6G 通信时代,带动千亿规模市场

来源&#xff1a;中国银河证券摘要&#xff1a;“6G5G卫星网络”&#xff0c;卫星通信应用前景广阔。2017年11月&#xff0c;英国电信集团(BT)首席网络架构师NeilMcRae对6G通信进行了展望&#xff0c;他认为6G将是“5G卫星网络”&#xff0c;在5G的基础上集成卫星网络来实现全球…