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++语言相关知识积累【最近持续更新】 -> 正文阅读

[C++知识库]C++语言相关知识积累【最近持续更新】

本文档旨在分享学习 c++语言过程中遇到的相关知识,便于自己做积累,知识包括但不限于相关软件、c++语法、bug解决方案等。
学习教材:清华大学出版社 C++语言程序设计(第4版)郑莉
网课资料:郑莉老师学堂在线的课程

C++语言程序设计基础 学堂在线
C++语言程序设计进阶 学堂在线


一些偏向代码的小知识点

  1. 取绝对值函数 fabs(x)
  2. 对变量x的类型转换 static_cast<int>(x)
  3. bool 类型的函数默认返回值是0/1,想要fun(x)返回true/false cout<<boolalpha<<fun(x)
  4. 科学计数法10^-15:1e-15
  5. unsigned 不可定义负数

一些偏向理论的小知识点

  1. 在相同作用域中不允许在同一个函数的多个声明中对同一个参数的默认值重复定义,即使值相同也不可(函数声明同理,默认形参值只能在函数原型中给出,之后不能再出现)
  2. 带默认形参值的函数可以自左向右依次接受传入的新形参值,空缺的将采用默认值
  3. 在面向对象程序设计中,程序模块是由 类 构成的,类是对逻辑上相关的函数与数据的封装,是对问题的抽象描述
  4. 在C++中,类的对象就是该类的某一特定实体(实例)
    例如:将一个年级所有同学看成一个类,那么每一位同学就是一个特定的实体,也就是一个对象

一些重要的概念及具体说明

  1. 【值传递&引用传递】
    | 值传递是单向的,引用传递是双向的
    | 引用传递快占内存小,对形参的作用将直接作用于实参
void swap(int a, int b)    //值传递
void swap(int &a, int &b)  //引用传递
  1. 【内联函数】
    inline double fun(double x) { return x*x; }
    | 特点:在编译时将函数体嵌入每一个调用处
    | 优点:节省了参数传递、控制转移等开销
    | 注意:内联函数要求函数尽量简单,不能出现循环语句,switch语句等;
    | 内联函数的定义必须出现在内联函数第一次被调用前;
    | 对内联函数不能进行异常接口申明
  2. 【函数重载】具有相同的函数名但形参个数或类型不同
    | 如果函数名和形参都一样会在编译报语法错误(函数重复定义)
    | 注意:与形参名和返回值无关
    | 应用:一般用于实现相同或类似功能而处理不同类型数据的函数
  3. 【抽象】对具体问题(对象)进行概括抽出一类对象的公共性质并加以描述
    | 对一个问题的抽象包括:
    数据(功能)抽象:描述此类区别于其他类的特征,即某类对象的属性或状态
    行为(代码)抽象:某类对象的共同行为或功能特征
    | 例如:对象(时钟)数据抽象(小时 分钟 秒)行为抽象(显示时间函数 设置时间函数)
  4. 【封装】将抽象得到的数据和行为相结合,也就是将数据与操作数据的函数代码有机结合形成“类”,数据和函数都是类的成员
  5. 【继承】允许在保持原有类特性的基础上进行更具体的详细说明(在保持原有的属性上增加新的特殊属性)
  6. 【多态】一段程序能处理多种类型对象的能力
  7. 【类的成员函数】描述的是类的行为
    | 函数的原型声明要写在类中,原型说明函数的参数表、返回值类型,实现成员函数时要指明类的名称。例如:void Clock::setTime(int newH,int newM,int newS) { ... }
  8. 【构造函数】在对象被创建时用特定的值构造对象,将对象初始化为一个特定的状态
    | 构造函数的函数名与类名相同,没有返回值,通常声明为公有函数
    | 构造函数在对象被创建的时候将被自动调用,如果没有写构造函数则系统会系统生成隐含的默认构造函数(无参数)
  9. 【复制构造函数】使用一个已经存在的对象(参数指定的)去初始化同类的一个新对象
    | 系统自动生成的隐含复制构造函数是把初始对象每一个数据成员的值都复制到新建的对象中,具有完全小你沟通的数据成员(属性)
    | 以下三种情况将调用复制构造函数:

第一类:当用类的一个对象去初始化该类的另一个对象

Point a(1,2);
Point b(a);//用对象a初始化对象b时,调用复制构造函数
//Point b=a;  也可以

第二类:如果函数的形参是类的对象,调用函数时,进行形参和实参结合(只有值传递才会调用,传递引用则不会)

void f(Point p){...}
	int main(){
	Point a(1,2);
	f(a);//函数的形参为类,调用函数时会调用复制构造函数
}

第三类:如果函数的返回值是对象,函数执行完成返回调用者时(g()是局部函数,离开函数局部对象a就会消亡)

Point g(){
	Point a(1,2);
	return a;//函数的返回对象是类对象,返回时调用复制构造函数
}

[ps.书本p112 例4-2有三种情况的完整例子]

  1. 【析构函数】在对象的生命周期即将结束的时候被 自动调用 ,调用后对象消失对应内存空间也被释放,析构函数不接受任何参数 ~Clock() {}

一些代码框架

  • 一个简单初级的c++应用程序大概有以下代码部分构成(以一个求圆面积的程序为例)
【 part 1 】///
#include <iostream>
//可以按需增加头文件
using namespace std;

【 part 2 】///
const float PI=3.141593;
//定义一些全局变量

【 part 3 】///
 [part 3-1 声明定义类及其数据和方法] /
class Circle {
public:
	//构造函数(注意与类同名)
	Circle(float r);
	//析构函数
	~Circle(){}
	//一些成员函数的原型(不要加{}只需定义函数名和参数列表即可)
	float area();
private:
	//私有数据成员
	float radius;
};

/ [part 3-2 类的实现] /
//用构造函数初始化数据成员
Circle::Circle(float r){
	radius = r;
}
//实现成员函数
float Circle::area(){
	return PI*radius*radius;
}

【 part 4 】///
//主函数实现
int main(){
	float radius;
	cin>>radius;
	Circle myCircle(radius);
	float myCircleArea = myCircle.area();
	cout<<"the area is:"<<myCircleArea<<endl;
	return 0;
}
//输入输出结果
1.5
the area is:7.06858

其中较短的函数可以直接在定义处写,例如一些取值函数getX(),getY()是内部私有数据成员对外的一个接口函数,只需要简单的return x/return y即可


菜鸡学习积累,如果错误欢迎大佬指正

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:24:25  更:2021-11-12 19:26:32 
 
开发: 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 7:15:25-

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