C++小白Python选手2小时入门C++

学习链接:C++入门/2小时从C到C++快速入门(2018,C++教程)

C++在C语言的基础上增加了面向对象和通用算法语言特征。

  1. C++头文件不必是.h结尾,C++头文件举例:cmath、cstdio
  2. 注释:单行//、多行/**/
  3. 为了防止名字冲突(同名),引入名字空间namespace,::运算符限定某个名字属于哪个名字空间。不指定时为全局名字空间。
  4. 输入输出流库(头文件iostream),cout <<和cin >>分别表示标准流输出输入流对象。标准库中的名字都属于标准名字空间std。endl表示换行。
  5. 变量“即用即定义”,且可用表达式初始化。
  6. 程序块{}内部作用域可定义域外部作用域同名的变量,在该块里就隐藏了外部变量。
  7. for循环语句可以定义局部变量。
  8. 访问和内部作用域变量同名的全局变量,用全局作用域限定::
  9. 引用类型:一个变量是另一个变量的别名。引用变量经常用作函数形参,对形参的修改就是对实参的修改。&a表示取a的地址。*x表示简引用运算符。当实参占用内存较大时,用引用代替传值(需要复制)可提高效率,如果不希望因此无意中修改实参,可以用const修饰符。
  10. 对于不包含循环的简单参数,用inline关键字声明内联函数,编译器将内联函数调用用其代码展开,称为“内联展开”,避免函数调用开销,提高程序执行效率。
  11. try-catch处理异常。
  12. 默认形参一律靠右。
  13. 函数重载:允许函数重名,但要求形参不一样。不能根据返回类型区分同名函数。
  14. 运算符重载
  15. template函数,template
  16. 动态内存分配,关键字new和delete可以对类对象调用初始化构造函数或销毁析构函数(virtual ~f())。
  17. 类struct,包含数据和函数方法用于访问或修改类变量(对象)。*this自引用。
  18. 构造函数和析构函数。
    • 构造函数是和类名同名且没有返回类型的函数,在定义对象时会自动被调用,而不需要再单独调用专门的初始化函数如init(类似python的init函数)。
    • 析构函数是在类对象销毁时被自动调用,用于释放该对象占用的资源,如释放占用的内存,关闭打开的文件。
  19. 控制访问、类接口。将关键字struct换成class。
    • class定义的类的成员默认都是private,外部函数无法通过类对象成员或类成员函数访问。
    • 接口:public的公开成员(一般是成员函数)称为这个类的对外接口,外部函数只能通过对这些接口访问类对象。private等非public的包含内部细节,不对外公开,从而可以封装保护类对象。
  20. 拷贝:拷贝构造函数、赋值运算符。硬拷贝,m和s指向同一块内存。
    • 拷贝构造函数:定义一个类对象时用同类型的另外对象初始化。如student m(s)
    • 赋值运算符:一个对象赋值给另一个对象m=s
  21. 类体外定义方法(成员函数),必须在类定义中声明,类体外要有类作用域::,否则就是全局外部函数了
  22. 类模板:将一个类变成“类模板”或“模板类”
  23. typedef 类型别名:typedef int INT
  24. string 类模板Vector
  25. Inheritance继承(Derivation派生):一个派生类,从1个或多个父类/基类继承,即继承父类的属性和行为,但也有自己的特有属性和行为。派生类的构造函数只能描述自己的成员和其直接基类的初始化,不能去初始化基类的成员。
  26. 虚函数Virtual Functions和多态性。派生类的指针可以自动转化为基类指针,用一个指向基类的指针分别指向基类对象和派生类对,并2次调用
  27. 多重继承
  28. 纯虚函数和抽象类。函数体=0的虚函数称为“纯虚函数”。包含纯虚函数的类称为“抽象类”。
    • 抽象类不能实例化,不能定义抽象类的对象(变量)。
    • 从抽象类派生的类型如果没有继承实现所有的纯虚函数,则仍然是“抽象类”。

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

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

相关文章

MQ基础1

对应B站视频&#xff1a; MQ入门-01.MQ课程介绍_哔哩哔哩_bilibili 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中&#xff0c;调用者发起请求后需要等待服务提供者执行业务返回结果后…

【JavaScript脚本宇宙】强大的自然语言处理:六款JavaScript库详解

从语义到实体&#xff1a;深入了解JavaScript自然语言处理库 前言 随着人工智能和自然语言处理技术的飞速发展&#xff0c;JavaScript在这一领域也有了越来越多的应用。本文将介绍几个优秀的JavaScript库&#xff0c;它们专注于处理英语文本&#xff0c;并提供了丰富的功能和…

求立方体面积体积以及判断(c++)

代码&#xff1a; #include<iostream> using namespace std;class Cube { public:void setL(int l){m_L l;}int getL(){return m_L;}void setW(int w){m_W w;}int getW(){return m_W;}void setH(int h){m_H h;}int getH(){return m_H;}int calculateS(){return 2 * (…

netdata 监控软件安装与学习

netdata官网 netdata操作文档 前言&#xff1a; netdata是一款监控软件&#xff0c;可以监控多台主机也可以监控单台主机&#xff0c;监控单台主机时&#xff0c;开箱即用&#xff0c;web ui很棒。 环境&#xff1a; [root192 ~]# cat /etc/system-release CentOS Linux rel…

彻底清理Conda环境:使用conda remove命令的终极指南

彻底清理Conda环境&#xff1a;使用conda remove命令的终极指南 在Conda环境中&#xff0c;随着时间的推移&#xff0c;可能会积累大量不再需要的包和它们的依赖项。这不仅会占用宝贵的磁盘空间&#xff0c;还可能影响环境的性能。conda remove命令是Conda提供的一个强大工具&…

GD32F407VET6新建固件库工程并下载运行

零、所需文件及环境&#xff1a; 1、固件库的压缩包 GD32F4xx_Firmware_Library_V3.2.0.7z 官网 2、GD32F407的keil支持包 官网 兆易创新GigaDevice-资料下载兆易创新GD32 MCU 2、 keilkilll.bat 用来删除编译过程文件 可以不要 &#xff08;原子、野火资料里都有&…

LeetCode热题100(JavaScript)

哈希 两数之和 暴力解法 /*** param {number[]} nums* param {number} target* return {number[]}*/ var twoSum function(nums, target) {for(let i 0;i<nums.length;i){let x1 nums[i]for(let j 0 ; j<nums.length;j){if(i!j){let x2 nums[j]if(x1x2target){ret…

算法金 | 来了,pandas 2.0

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今日 210/10000 Pandas 是一个强大的数据分析库&#xff0c;广泛应用于科学研究、金融分析、商业智能等领域。它提供了高效的数据结构…

[WUSTCTF2020]level4题解 入土为安的第三天

二叉树 Practice my Data Structure code..... Typing....Struct.....char....*left....*right............emmmmm...OK! Traversal! Traversal type 1:2f0t02T{hcsiI_SwA__r7Ee} Traversal type 2:20f0Th{2tsIS_icArE}e7__w Traversal type 3: //type3(&x[22]); No w…

samba服务、安装-smbpasswd工具、pdbedit工具、testparm工具

在Windows构建的网络生态里&#xff0c;各主机间的文件及打印资源共享&#xff0c;主要依赖微软专有的SMB/CIFS网络协议来达成。SMB&#xff08;即Server Message Block&#xff0c;服务消息块&#xff09;与CIFS&#xff08;全称Common Internet File System&#xff0c;通用互…

ShardingSphere的项目应用

1. 事情的起因 最近,随着业务的发展,我们的项目面临着日益增长的数据挑战。系统使用的数据库是mysql,每天的增量差不多在百万左右,由于没有进行分库分表,以前设置的单表保存已经越发不能满足需求,所以想维持表的性能,甲方考虑对这些大数据量的表进行分表操作,同时也采…

MySQL left join、right join以及inner join的区别 ?

LEFT JOIN&#xff08;左连接&#xff09;、RIGHT JOIN&#xff08;右连接&#xff09;和INNER JOIN&#xff08;内连接&#xff09;是SQL中用于连接两个或多个表以检索数据的重要操作。它们之间的主要区别在于如何处理那些在连接条件下没有匹配的行。下面通过具体的例子来说明…

扫地机器人如何解决安全性与隐私保护

扫地机器人在解决安全性与隐私保护方面&#xff0c;需要从多个角度入手&#xff0c;包括产品设计、技术实现、用户教育以及法律法规遵守等方面。以下是具体的解决方案&#xff1a; 一、安全性解决方案 1.提升避障能力&#xff1a;使用先进的传感器技术&#xff0c;如激光雷达、…

JavaScript switch 语句

JavaScript switch 语句 JavaScript 中的 switch 语句是一种多分支选择结构&#xff0c;用于根据变量的值执行不同的代码块。它提供了一种简洁的方式来替代多个 if...else 语句&#xff0c;特别是在处理多个条件时。 基本语法 switch (expression) {case value1:// 代码块 1…

微信小程序实现省市区级联选择组件

微信小程序实现省市区级联选择组件 首先&#xff0c;创建一个新的组件&#xff0c;命名为 area-picker。 在 area-picker.wxml 文件中添加以下代码&#xff1a; <view class"area-picker"><picker mode"multiSelector" bindchange"onPick…

C++基础篇(2)

目录 前言 1.缺省参数 2.函数重载 2.1函数重载的基本规则 ​编辑2.2注意事项 2.3 重载解析&#xff08;Overload Resolution&#xff09;--补充内容 3.引用 3.1引用的概念和定义 3.2引用的特性 3.3引用的使用 3.4const引用 4.指针和引用的关系 结束语 前言 上节小编…

PlantUML 教程:绘制时序图

绘制时序图是 PlantUML 的一个强大功能&#xff0c;下面是详细的 PlantUML 时序图教程&#xff0c;帮助你理解如何使用它来创建清晰的时序图。 基本概念 时序图&#xff08;Sequence Diagram&#xff09;用于展示对象之间的交互以及它们之间的消息传递顺序。它主要由以下元素…

感应灯光画纯电路开源版本

前言 之前那版灯光画用的从垃圾佬淘的电路板拼出来的&#xff0c;功能不全&#xff0c;显示效果不太好而且无法固定到相框上&#xff0c;这次改版用的嘉立创smt&#xff0c;贴了5片板子&#xff08;19元&#xff09;&#xff0c;功能上的改进是加了无极触摸调光、添加了黄白两…

简易图书管理系统——MYsql+Javase+JDBC

目录 前言 数据表的建立 操作包各个类的实现 增加类 删除类 展示类 借阅与归还类 前言 书接上文 JDBC编程的学习——MYsql版本-CSDN博客 本期我们通过对先前图书管理系统进行改造,是它的数据能保存在数据库中 完整代码我已经保存在github中,能不能给个星呢!!!! call…

debian固定ip

debian固定ip 前言 安装好的Debian系统后&#xff0c;为了确保每次登陆的ip不变&#xff0c;需要固定 方法 命令如下 ip addr | grep inet因为有有线网和无线网 2 种连接方式&#xff0c;因此需要区别。 其中 enp 的是有线&#xff0c;wlp 的是无线 查看网关 IP 命令如下 …