博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++小白入门学习1
阅读量:3588 次
发布时间:2019-05-20

本文共 1617 字,大约阅读时间需要 5 分钟。

C++概述

在这里插入图片描述

图形开发工具QT可以跨平台
解释性语言pathon
在这里插入图片描述

C++命名空间 输入输出

命名空间的定义:namesapce名字{变量、函数}

命名空间的使用:
使用作用域限定符:命名空间的名字::变量名或者函数名
使用using关键字导入命名空间:using namespace 命名空间;using 命名空间::变量名或者函数名
命名空间注意事项
不能访问其他源文件的命名空间
当多个源文件的命名空间名字相同时,如果没有出现重复的变量名和函数名,系统会合并两个命名空间

Cin:输入流 cout:输出流 cerr:错误流 clog:日志流 流对象

流运算符: >> 输入 << 输出
Printf:行缓冲:满一行输出或者遇到”\n”
Scanf输入前刷新缓冲区
垃圾问题:getchar() 或者 cin.get()

C++对C的升级

基本语句的升级

for语句:优化循环变量的作用域
条件表达式:可以做左值

关键字的升级

***register关键字***的升级:尽可能的将该变量保存到CPU内部寄存器中,从而省去从内存抓取数据的时间,提高程序的运行效率
//注意事项:只能修饰局部,不能修饰全部变量和函数
register修饰变量,不能通过&获取该变量的地址
Register修饰的变量类型必须是CPU所能够接受的数据类型

Int max = a > b ? a : b( a > b ? a : b) = 69

const关键字:修饰变量,只读变量

const关键字的升级:const修饰是常量
地址之间的赋值必须是const对const

Auto关键字

C语言auto关键字:自动变量,只是用来说明该变量的作用域;相当于局部变量
C++:auto:类型推导,实现高效率编程

***using关键字***的升级:替代C语言typedef的关键字

***typedef关键字***的作用:给类型重命名的;提高代码可读性、移植性

Using Int = int;//typedef int Int;Using Len = int;//typedef int Len;

C++对C的升级:类型的升级

引入了bool类型
Bool flag = false;
引入了“引用”
引用:给变量起别名,定义引用必须初始化,一旦绑定就不能再次绑定到其他变量上
作用:解决函数传值和传地址问题;
应用场景:作为函数的形参;作为函数的返回值(函数的调用可以做左值)
常引用:const修饰的引用;绑定常量

C++11引用的分类:左值引用(&):只能绑定左值、右值引用(&&):只能绑定右值

左值:可以取地址可以修改 右值:不能取地址,不能修改
Int num = 5;

Int &l_num = num;//左值引用Int &&r_num = 5;//右引用Int &&r_num = std::move(num);

Std::move()将左值转换为右值

为什么要引入右值引用?实现对象移动,解决临时对象拷贝开销的问题;
引用是不是数据类型?(不是)它占不占用内存空间?(运行时不占用内存空间,编译时预留内存空间)!!!!!!!!!!!!!

C++对C的升级:malloc\free

引入了new,delete运算符来替代malloc,free
1.malloc按照字节为单位,new可以初始化
2.malloc不能初始化内存,new可以初始化
3.malloc是函数,new是运算符

C++对C的升级:函数的升级

引入inline关键字修饰函数;用(内存)空间换运行时间
引入默认参数:可以给形参设置默认参数 规则:默认参数右边的参数必须全为默认参数
可以函数重载,可以使用相同的函数名,重载规则:形参的个数,类型或者顺序不同
注意事项:函数返回值不能作为重在条件;默认参数会影响重载条件

作业

思考题:

指针和引用的区别?
什么是对象移动

转载地址:http://wjjwn.baihongyu.com/

你可能感兴趣的文章
Python面向对象编程
查看>>
MAN QPIDD
查看>>
python import自定义模块
查看>>
Python利用XMLRPC实现分布式系统
查看>>
执行yum提示错误:rpmdb: BDB0113 Thread/process 424227/139826856310848 failed
查看>>
proftpd服务器搭建
查看>>
ProFTPD:Limit配置
查看>>
IDEA恢复布局
查看>>
重定向和请求转发的区别
查看>>
Map、Set、List集合区别(看完秒懂)
查看>>
普通用户使用docker命令遇到提示需要提升权限时的解决方法
查看>>
webpack打包技术
查看>>
Leecode 面试题09用两个栈实现队列
查看>>
fastdfs连接超时报错解决方案
查看>>
Leecode202. 快乐数
查看>>
windows10解决80端口被占用的问题
查看>>
ElasticSearch快速入门之创建索引库、创建映射、创建文档、搜索文档
查看>>
用故事巧妙帮助理解公钥和私钥的区别和联系
查看>>
application.properties 文件和 application.yml 文件区别以及加载顺序
查看>>
阿里云服务器安装docker,拉取常用的mysql,redis,nginx等镜像
查看>>