随笔分类 -  C++

摘要:本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用 模板 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 函数模板 C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板 C++提供两种模板机 阅读全文
posted @ 2021-08-20 16:06 白藏i 阅读(78) 评论(0) 推荐(0)
摘要:程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 通过文件可以将数据持久化 C++中对文件操作需要包含头文件 < fstream > 文件类型分为两种: 文本文件 - 文件以文本的ASCII码形式存储在计算机中 二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂 阅读全文
posted @ 2021-08-17 13:56 白藏i 阅读(46) 评论(0) 推荐(0)
摘要:多态的基本概念 多态是C++面向对象三大特性之一 多态分为两类 静态多态:函数重载 和 运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 - 编译阶段确定函数地址 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 #in 阅读全文
posted @ 2021-08-16 17:15 白藏i 阅读(50) 评论(0) 推荐(0)
摘要:继承是面向对象三大特性之一 有些类与类之间存在特殊的关系 可以发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。 这个时候可以考虑用继承的技术,减少重复代码 继承的基本语法 #include <iostream> using namespace std; class Base { 阅读全文
posted @ 2021-08-14 12:35 白藏i 阅读(46) 评论(0) 推荐(0)
摘要:运算符重载概念:对已有的运算符重新进行定义,赋予另一种功能,以适应不同的数据类型 加号运算符重载 作用:实现两个自定义数据类型相加的运算 #include <iostream> using namespace std; //成员函数重载 class Person { public: Person o 阅读全文
posted @ 2021-08-13 12:04 白藏i 阅读(48) 评论(0) 推荐(0)
摘要:在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元 友元的目的就是让一个函数或者类 访问另一个类中的私有成员 友元的关键字为 friend 友元的三种体现 全局函数做友元 类做友元 成员函数做友元 全局函数做友元 把函数声明写进类里,前面加上friend #include 阅读全文
posted @ 2021-08-12 21:08 白藏i 阅读(54) 评论(0) 推荐(0)
摘要:成员变量和成员函数分开储存 在C++中,类内的成员变量和成员函数分开储存 只有非静态成员变量才属于类的对象上 #include <iostream> using namespace std; class Person { public: int m_A; static int m_B; void f 阅读全文
posted @ 2021-08-11 12:09 白藏i 阅读(50) 评论(0) 推荐(0)
摘要:static static局部变量 将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中 static 全局变量 表示一个变量在当前文件的全局内可访问 static 函数 表示一个函数只能在当前文件中被访问 static 类成员变量 表示这个成员为全类所 阅读全文
posted @ 2021-08-11 11:47 白藏i 阅读(56) 评论(0) 推荐(0)
摘要:类与对象作为类成员 C++类中的成员可以是另一个类的对象,我们称该成员为 对象成员 class A{} class B { A a; } B类中对象A作为成员,A为对象成员 那么当创建B对象时,A与B的构造和析构的顺序? 在之前的类里,先构造的后析构,后构造的先析构 #include <iostre 阅读全文
posted @ 2021-08-09 14:25 白藏i 阅读(45) 评论(0) 推荐(0)
摘要:char a = ‘0’; int ia = a - ‘0’; 阅读全文
posted @ 2021-08-07 21:52 白藏i 阅读(131) 评论(0) 推荐(0)
摘要:功能 atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串“12345”转换成数字12345。 格式 该函数的格式为 int atoi(const char* str) 其中,参数str是要转换的字符串,返回值是转换后的整数。 注意事项 关于参数的注意事项 在“格式”中提到,atoi() 阅读全文
posted @ 2021-08-07 21:50 白藏i 阅读(527) 评论(0) 推荐(0)
摘要:构造函数调用规则 默认情况下,C++编译器至少给一个类添加3个函数 默认构造函数(无参,函数体为空) 默认析构函数(无参,函数体为空 默认拷贝构造函数,对属性进行值拷贝 构造函数调用的规则如下: 如果用户定义 有参构造函数,C++不再提供默认构造函数,但是会提供默认拷贝构造 如果用户定义 拷贝构造函 阅读全文
posted @ 2021-08-07 11:45 白藏i 阅读(49) 评论(0) 推荐(0)
摘要:C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据的设置。 构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有初始化状态,对其使用后果是未知 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题 C++利用了构造函数和析构 阅读全文
posted @ 2021-08-06 14:18 白藏i 阅读(36) 评论(0) 推荐(0)
摘要:C++面对对象的三大特征为:封装、继承、多态 C++认为万事万物皆为对象,对象上有其属性和行为 封装的意义 将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制 封装意义一: 在设计的时候,属性和行为写在一起,表现事物 语法: class 类名 {访问权限:属性/行为}; //实例1 阅读全文
posted @ 2021-08-05 13:20 白藏i 阅读(41) 评论(0) 推荐(0)
摘要:函数默认参数 在C++中,函数的形参列表中的形参是可以有默认值的 语法: 返回值类型 函数名 (参数 = 默认值){} #include <iostream> using namespace std; int func (int a, int b = 10, int c = 10) //某个位置有了 阅读全文
posted @ 2021-08-04 14:24 白藏i 阅读(30) 评论(0) 推荐(0)
摘要:引用的基本使用 作用:给变量起别名 语法:数据类型 &别名 = 原名 #include <iostream> using namespace std; int main() { int a = 10; int &b = a; cout << a; //输出10 cout << b; //输出10 b 阅读全文
posted @ 2021-08-03 20:43 白藏i 阅读(42) 评论(0) 推荐(0)
摘要:C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值、局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区意义: 不同区域存放的数 阅读全文
posted @ 2021-08-03 17:04 白藏i 阅读(57) 评论(0) 推荐(0)
摘要:C语言中 printf("%.2f", a); //a保留两位小数 C++中(需要 #include <iomanip>) cout << "a ='' << setprecision(2) << a; 若 a 为 0.200001,则输出 a = 0.2,0被省略了 cout.setf(ios:: 阅读全文
posted @ 2021-07-31 20:59 白藏i 阅读(568) 评论(0) 推荐(0)