| |
|
开发:
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语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |