IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++寒假学习DAY1 -> 正文阅读

[C++知识库]C++寒假学习DAY1

C语言输入输出库函数

#include<stdio.h>

1.C++输入输出库函数

#include<iostream>//标准库,不能带有.h

using namespace std;//使用命名空间

cin标准输入设备

示例:

cin>>a>>ch,把数据放入缓冲区依次提取,从键盘提取数据给a,再然后给ch

两个大于号中间没有空格表示提取符,每一个数据之前都要有提取符。

错误示例

cout标准输出设备

示例:

cin<<a<<" "<<ch<<endl,把a插入,然后插入空格,最后插入ch,注意endl实际上是一个方法,将执行一个\n的操作,相当于进行了一个回车

错误示例

两个小于号中间没有空格表示插入符

2.引用:(1.引用的概念? 2.常引用? 3.引用做形参)

类型& 引用变量名=

&在C语言中的使用方法:

&&逻辑与

&按位与

&a取地址

此处&为引用

ps:(1)当我们定义引用时,必须给予初始化(2)在定义引用时,没有所谓的空引用(3)没有引用的引用,即没有别名的别名;

&在C++中的使用方法:

常引用:可以使能力收缩,但是不能是能力变大。

a是常量,自身的值不可改变,失去了原有的意义,

在函数不存在时,不可引用,引用作为函数的形参,可以通过形参的改变去改变实参的值

?3.inline为了解决频繁调用的小函数大量消耗栈空间(栈内存)(为了现场保护和现场修复,inline是一种内联函数),内联函数的引用减少了现场保护和现场修复的时间,以及调用函数要调用栈帧以及调用结束的清栈等,减小了时间开销。

内联函数的处理方式:函数的调用点直接代码展开。

内联函数和普通函数的区别:函数的处理流程是先进行实参压栈然后处理函数体。内联函数没有开辟和清栈,函数体直接在调用点代码展开,内联函数体代码简单,不包含复杂的结构控制语句。

内联函数和static修饰的函数区别:ststic只是将函数的符号变成局部符号,函数的处理机制和普通函数相同,都有函数的开栈和清栈开销。而内联函数没有函数的开栈和清栈开销。

内联函数和宏的区别:inline函数的处理时机是在编译阶段,有安全检查和类型检查。宏的处理时机是在预编译阶段,没有任何检查机制,只是更简单的文本替换。inline函数是一种更安全的宏。

ps:inline函数一般写在头文件中;inline函数只在Release版本生效,在Debug版本无效;inline一般只是给编译器一个建议,具体的操作是由编译器决定的。inline函数是基于现实的,不是基于申明的。

4.函数参数的默认值开销:默认值给发从右到左依次给,不能跳着给error。

当给实参时,是从左到右依次赋予实参。

默认值是在编译过程中确定的。如果有实参则替换。

?运行结果12,45,56,0,0

?5.函数的重载

函数的原型包括函数返回类型,函数名,形参列表

名字重命名(名字粉碎技术)

“?Max@@YAH1H2H3@Z”(?命名开始标志,Max函数名,@@YA调用约定,H1返回类型的缩写H2第一个参数H3第二个参数,@Z名字结束)

?_stdcall调用约定:(返回类型不一样,不能函数重载)

1.以“?”标识函数名开始,后跟函数名

2.函数名以后以“@@YG”标识参数表的开始,后跟参数表

3.参数表以代号表示X---void,D---char,E---unsigned char,F---short

?Ps:函数重载依据;返回类型不同的函数是否可以进行重载(有缺省或者默认值不可以重载);参数带有默认值的情况;为什么C++可以进行函数重载而C语言不可以;名字粉碎;extern关键字的使用(1.干预编译方器,用C++还是C语言2.c语言中告诉函数这是一个外部函数)。

6.模板函数(处理函数重载) 模板在编译时产生代码。不是替换过程,是类型重命名过程。

?

?

typedef重命名规则:

?int的重命名规则和函数捆绑在一起,当我进行编译代码时Type是整型

重命名成double,产生处理char类型的代码

?

?

宏替换:

?Type是整型,所以p是整型指针类型,(a=>type)a的类型是 ,(b=>type) b的类型是 。

此处错误,不是宏的替换,是重命名规则。*和变量名结合,不适合类型名结合。

?7.new/delete和malloc/free区别

在C++中堆内存的分配和释放是通过new和delete来完成的。

开辟内存:类型*指针变量名=new类型(初始化数值);

释放内存:delete指针变量名

类和对象:

类是一组相关树形(变量)和行为(方法)的集合,是一个抽象概念的产物。

对象是该类事物的具体表现,具体存在的实体。

成员变量是对象的属性,属性的值确定对象的状态。

成员函数是对象的方法,确定对象的行为。

状态和行为是对象的主要属性。

封装是面向对象程序设计最基本的特性,把数据(属性)和函数(操作)合成一个整体,在这计算机的世界中是用类与对象实现的。

访问限定符有三种:私有的 共有的 保护的。如果类体起始点无访问说明符,默认私有。访问说明符的私有和保护体现了类具有封装性。

类是一种数据类型,定义时不为类分配存储空间,所以不能对类的数据成员初始化。类中的任何数据成员也不能使用关键字extern,auto或者register限定其存储类型。

成员函数的定义:

前面只对成员函数作了一个声明(函数的原型),并没有对函数进行定义。函数定义常在类的说明之后进行,格式:回值类型 类名::函数名(参数表)? {......}//函数体? ::z作用域运算解析符

空类的大小是1,在c++里有空间即可操作。有空间不一定有对象。有对象一定要有空间。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 12:43:52  更:2022-03-06 12:45:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:50:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码