【C++ 学习记录】(一)--你好,C++

写在前面

工作需要,重学C++,实在是太痛苦了,大二的时候应试就没学会!!

进入正题

1.编程是怎么回事

C++在百科上的解释是一种静态数据类型检查 的、支持多种编程范式(面向过程与面向对象等)的通用程序设计语言。通俗来说,为了表达事物之间的可联系性,经常用动词verb将各个事物或客体的对象之间联系起来,这些用动词缀连起来的句子就是C++的表达式,动词在这里就是C++的函数;将句子按照逻辑关系组合就形成文章,也就是C++ 的程序。

2.拿来主义

C++继承了C的特性和优点,还借鉴了其他程序设计语言的优点,C++从Simula拿来了类的概念;从Algol68拿来了操作符重载、引用以及在 任何地方声明变量的能力;从BCPL拿来了“//”注释;从Ada拿来了模板、名字空间;从Ada、Clu和ML拿来了异常处理等。同时,C++吸收了很多新的特性,其中包括虚函数、函数名和操作符重载、常数、用 户可控制的自由空间储存区、改良的类型检查及新的双斜线“//”单行注释风格。

3.面向对象

C++首先是作为一门面向对象(OOP)的程序设计语言而闻名的。在C语言的基础上,C++添加了“类”的概念,从而可以很准确地表达出面向对象思想中封装、继承和多态的机制。所以,C++也可以用于面向对象程序设计,而这也是它最主要的应用状态。

一些重要的概念和要点

1.类与对象:类包含了数据成员和成员函数,数据成员表示对象的属性,成员函数表示对象的行为。通过实例化对象,我们可以使用类中的数据和函数。

2.封装:C++ 支持封装,即将数据和操作数据的函数封装在类中,对外部隐藏实现细节,只暴露必要的接口。

3.继承:继承是面向对象编程的一个重要特性,允许一个类(派生类)继承另一个类(基类)的属性和方法。派生类可以拥有基类的所有成员,并且可以添加自己的新成员。

4.多态:多态允许以统一的方式使用不同的类对象,即不同的对象可以使用相同的接口来执行不同的操作。这通过虚函数和函数重写实现。

5.标准模板库(STL):C++ 提供了一个强大的标准模板库,包含了各种容器类(如向量、列表、映射等)和算法(如排序、查找等),可以大大提高编程效率。通俗的理解,容器就是STL中的瓶瓶罐罐,STL中的容器是用来管理数据的,在容器诞生之前,程序员要使用数组来保存和管理程序中的大量数据。使用数组,虽然能够达到目的,但是程序员需要自己做很多事情,比如管理内存、维护数组中保存的数据、防止数组访问越界等。相比于数组,容器更加强大而灵活:它们的容量可以动态地扩充和缩减;它们可以自己管理内存;它们可以记住自己包含了多少数据元素;它们限定了自己所支持的操作复杂性;总的来讲,容器就是能够保存某种类型数据的类。它就像一个书架一样,把大量的数据组织起来对其进行管理,以便于算法对数据的访问。

按照组织数据的方式不同,STL中的容器分为顺序容器(sequence container)和关联容器(associative container)两种。
在这里插入图片描述

6.命名空间:命名空间是用于避免命名冲突的一种机制,将相同名称的类、函数、变量等放在一个命名空间中,可以使代码更加模块化和可维护。

7.动态内存管理:C++ 支持动态内存分配和释放,通过 new 和 delete 运算符来动态地创建和销毁对象,这使得内存管理更加灵活。

8.输入输出流:C++ 提供了流的概念,可以通过输入流(如 cin)接收用户输入,通过输出流(如 cout)向用户输出结果。

最后,可以使用C++编写一个简单的代码实例,例如计算两个数的和。

#include <iostream>
// 使用System名字空间,这是C++中的编程经验
using namespace std;

int main() {
    int num1, num2;

    // 输入两个整数
    cout << "请输入第一个整数:";
    cin >> num1;

    cout << "请输入第二个整数:";
    cin >> num2;

    // 计算并输出两个数的和
    int sum = num1 + num2;
    cout << "两个数的和为:" << sum << endl;

    return 0;
}

上述代码示例中,我们使用 iostream 头文件中的 cout 和 cin 来进行输入输出。cout 用于输出结果到屏幕,cin 用于接收用户输入。在 main() 函数中,我们首先声明了两个整数变量 num1 和 num2,然后通过 cin 分别接收用户输入的两个整数值。接下来,我们计算这两个整数的和,并将结果使用 cout 输出到屏幕上。当你运行这个程序时,它会要求你输入两个整数,并返回它们的和。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

想知道搭建知识库有什么重点?看这篇就够了

在目前这个提倡无纸化的时代&#xff0c;搭建一个知识库已经是一种潮流。无论是个人还是企业来说&#xff0c;都是特别重要的一个工具。今天looklook就从搭建知识库的重点这方面来展开&#xff0c;详细地告诉大家该如何成功搭建一个完善的知识库。 搭建知识库的重点 1.建立素材…

ubuntu版本Linux操作系统上安装键盘中文输入法

要在ubuntu版本Linux操作系统上安装键盘中文输入法 可以按照以下步骤进行操作&#xff1a; 1、Linux终端输入&#xff1a;sudo apt-get install ibus-pinyin 这将安装一个常用的中文输入法 “ibus-pinyin”。 2、重新启动系统&#xff1a;为了使输入法生效&#xff0c;需要…

【C语言+sqlite3 API接口】实现水果超市

实验内容&#xff1a; 假如我家开了个水果超市&#xff0c;有以下水果&#xff0c;想实现自动化管理&#xff0c;扫描二维码就能知道当前的水果状态&#xff0c;进货几天了&#xff0c; 好久需要再次进货&#xff0c;那些水果畅销&#xff0c;那些水果不畅销&#xff0c;那些水…

第一次实操Python+robotframework接口自动化测试

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出&#xff0c;通过关键字的封装实现一定意义上的脚本与用例的脱离&#xff01; robot framework 的安装不过多说明&#xff0c;网上资料比较太多~ 实例&#xff1a;&#xff01;&#xff01;&#xff01;&#xff01…

开源的短视频生成和编辑工具 Open Chat Video Editor

GitHub - SCUTlihaoyu/open-chat-video-editor: Open source short video automatic generation tool

KUKA机械臂的导纳控制

KUKA机械臂的导纳控制 在近期的实验中&#xff0c;需要根据传感器的给出的实时位置信息进行导纳控制&#xff0c;并实时改变导纳控制的参数。由于KUKA自带的实时导纳控制模型无法实时修改参数&#xff0c;因此尝试了自己实现导纳控制。网上这方面的资料比较少&#xff0c;整理…

Vue自定义指令

需求1&#xff1a;定义一个v-big指令&#xff0c;和v-text功能类似&#xff0c;但会把绑定的数值放大10倍。 需求2&#xff1a;定义一个v-fbind指令&#xff0c;和v-bind功能类似&#xff0c;但可以让其所绑定的input元素默认获取焦点。 自定义指令函数式v-big&#xff1a; &l…

Flutter 小技巧之滑动控件即将“抛弃” shrinkWrap 属性

相信对于 Flutter 开发的大家来说&#xff0c; ListView 的 shrinkWrap 配置都不会陌生&#xff0c;如下图所示&#xff0c;每当遇到类似的 unbounded error 的时候&#xff0c;总会有第一反应就是给 ListView 加上 shrinkWrap: true 就可以解决问题&#xff0c;那为什么现在会…

2023云曦期末复现

目录 WEB sign SSTI serialize WEB sign 有10000个 进行bp爆破 能发现 410 和 414长度 还有 420 410 414存在16进制的字符 拼凑出来为 \x66\x6c\x61\x67\x7b\x61\x63\x63\x39\x39\x66\x39\x30\x34\x66\x30\x65\x61\x66\x61\x34\x31\x63\x30\x36\x34\x33\x36\x38\x31\x3…

手机外壳缺陷视觉检测软硬件方案

单独使用一种光源效果图 同轴光会出现亮度不够的情况&#xff1b;回形面光因为光源中间的圆孔会使图像有阴影&#xff0c;造成图像效果不均衡&#xff0c;所以不采用单独光源打光 使用同轴回形面光源效果图 回形光源照亮产品要寻找的边缘&#xff0c;同轴光源起到补光的作用&a…

【100天精通python】Day5:python 基本语句,流程控制语句

目录 1. 条件语句 1.1 if语句 1.2 if-else语句 1.3 if-elif-else语句 2 循环语句 2.1 for循环 2.2 while循环&#xff1a; 3 跳转语句 3.1 break语句 3.2 continue语句 3.3 pass语句 4 异常处理语句&#xff08;try-except语句&#xff09; 5 语句嵌套 5.1 条…

Spring框架概述及核心设计思想

文章目录 一. Spring框架概述1. 什么是Spring框架2. 为什么要学习框架&#xff1f;3. Spring框架学习的难点 二. Spring核心设计思想1. 容器是什么&#xff1f;2. IoC是什么&#xff1f;3. Spring是IoC容器4. DI&#xff08;依赖注入&#xff09;5. DL&#xff08;依赖查找&…

2023-7-13-第十八式观察者模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

2023年iOS App Store上架流程详解(上)

目录 1.注册开发者账号 2.登录并配置人员 3.申请证书和配置文件 一.证书管理​ 二.新建证书​ 三.使用appuploader服务同步证书​ 1&#xff09;申请证书 2&#xff09;添加Identifiers和配置App ID 3&#xff09;申请配置文件 1.在Xcode项目中配置签名 2.上传应用包…

谷歌和加州大学伯克利分校的“改革者”在单个GPU上运行64K序列

转换器模型是自然语言处理&#xff08;NLP&#xff09;研究领域越来越流行的神经网络架构&#xff0c;大型变压器可以在许多任务上实现最先进的性能。代价是转换器过多的计算消耗和成本&#xff0c;尤其是对于长序列上的训练模型。 谷歌和加州大学伯克利分校的研究人员最近发表…

设计模式——解释器模式

解释器模式 定义 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种按照规定语法进行解析的模式&#xff0c;现实项目中用得较少。 给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句…

Java 设计模式——观察者模式

目录 1.概述2.结构3.案例实现3.1.抽象观察者3.2.观察对象3.3.具体观察者3.4.具体观察对象3.5.测试 4.优缺点5.使用场景6.JDK 源码解析——Observable / Observer6.1.Observable 类6.2.Observer 接口6.3.案例 1.概述 观察者模式 (Observer Pattern) 是一种行为型设计模式&#…

HP惠普暗影精灵9笔记本原装出厂Win11系统预装专用OEM系统镜像

暗影9笔记本电脑原厂Windows11系统包 OMEN by HP 16.1英寸游戏本16-wf0000,16-wf0001,16-wf0003,16-wf0004,16-wf0006,16-wf0008,16-wf0009,16-wf0010,16-wf0011,16-wf0012,16-wf0028,16-wf0029,16-wf0007,16-wf0032,16-wf0036,16-wf0043 链接&#xff1a;https://pan.baidu.…

[SQL系列] 从头开始学PostgreSQL Union Null 别名 触发器

初级的操作就是CRUD&#xff0c;但是高级的操作也是CRUD&#xff0c;只是语句写的更加复杂&#xff0c;不再是select * from table&#xff1b;这样简单&#xff0c;这次咱们学一些稍微高级点的。下面是上一篇文章。 [SQL系列] 从头开始学PostgreSQL 约束连接_Edward.W的博客-…

划片机的作用将晶圆分割成独立的芯片

划片机是将晶圆分割成独立芯片的关键设备之一。在半导体制造过程中&#xff0c;晶圆划片机用于将整个晶圆切割成单个的芯片&#xff0c;这个过程被称为“晶圆分割”或“晶圆切割”。 晶圆划片机通常采用精密的机械传动系统、高精度的切割刀具和先进的控制系统&#xff0c;以确保…