07 2023 档案

C++ VS2022输出中文乱码
摘要:打开VS中文件的高级保存选项 编码改为 Unicode(UTF-8 带签名) - 代码页 65001 控制台属性此时为 阅读全文

posted @ 2023-07-31 17:47 廿陆 阅读(512) 评论(0) 推荐(0) 编辑

C++Note文件操作 二进制文件
摘要:二进制文件 以二进制的方式对文件进行读写操作 打开方式要指定为 ios::binary 写文件: 二进制方式写文件主要利用流对象调用成员函数 write 函数原型: ostream& write(const char * buffer, int len); 参数解释:字符指针 buffer 指向内存 阅读全文

posted @ 2023-07-30 12:42 廿陆 阅读(14) 评论(0) 推荐(0) 编辑

C++Note文件操作 读文件
摘要:读文件步骤: 1.包含头文件 #include<fstream> 2.创建流对象 ifstream ifs; 3.打开文件并判断文件是否打开成功 ifs.open("文件路径",打开方式) 4.读取数据 四种方式读取 5.关闭文件 ifs.close(); 1 #include <iostream> 阅读全文

posted @ 2023-07-30 12:21 廿陆 阅读(12) 评论(0) 推荐(0) 编辑

C++Note文件操作 写文件
摘要:文件操作: 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 通过文件可以将数据持久化 C++中对文件操作需要包含头文件 <fstream> 文件类型分为两种: 1.文本文件: -文件以文本的 ASCII码 形式存储在计算机中 2.二进制文件: -文件以文本的 二进制 形式存储在计算机 阅读全文

posted @ 2023-07-30 12:00 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++Note 多态 案例 电脑组装
摘要:案例描述: 电脑组成部件为:CPU 显卡 内存条 将每个零件封装出抽象基类,并且提供不同的厂商生产不同零件,例如 Intel厂商和Lenovo厂商 创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口 测试时组装三台不同的电脑进行工作 1 #include <iostream> 2 using 阅读全文

posted @ 2023-07-30 11:21 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++Note 虚析构和纯虚析构
摘要:多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码 解决方式:将父类中的析构函数改为虚析构或者纯虚析构 虚析构和纯虚析构共性: 可以解决父类指针释放子类对象 都需要有具体的函数实现 虚析构和纯虚析构区别: 如果是纯虚析构,该类属于抽象类,无法实例化对象 虚析构语法: 阅读全文

posted @ 2023-07-28 23:00 廿陆 阅读(8) 评论(0) 推荐(0) 编辑

C++Note 纯虚函数和抽象类 案例2:制作饮品
摘要:多态中,通常父类中虚函数的实现没有意义 主要都是调用子类重写的内容 因此可以将虚函数改为纯虚函数 纯虚函数语法: virtual 返回值类型 函数名 (参数列表) = 0; 当类中有了纯虚函数,这个类也称为抽象类 抽象类特点: 无法实例化对象 子类必须重写抽象类中的纯虚函数 否则也属于抽象类 案例: 阅读全文

posted @ 2023-07-27 12:10 廿陆 阅读(8) 评论(0) 推荐(0) 编辑

C++Note 多态案例1---计算器类
摘要:多态的优点: 代码组织结构清晰 可读性强 利用前期和后期的扩展和维护 案例:分别利用普通写法和多态技术,设计实现两个操作数进行运算的计算器类 普通写法: 1 //普通写法 2 //计算器类 3 class Calculator 4 { 5 public: 6 int getResult(string 阅读全文

posted @ 2023-07-27 11:56 廿陆 阅读(9) 评论(0) 推荐(0) 编辑

C++Note 多态的原理
摘要:加上 virtual 关键字 sizeof(类)为一个指针大小 4个字节或者8个字节(主要是32 64对指针的划分大小) 没有 virtual 关键字 sizeof(类)为1个字节大小 为空 仅是一个地址的大小 类和类内函数分开存储 子类仅完全继承父类函数 未发生同名情况 子类与父类函数重名 且父类 阅读全文

posted @ 2023-07-27 11:27 廿陆 阅读(6) 评论(0) 推荐(0) 编辑

C++Note 多态的基本概念 继承 + virtual
摘要:多态是C++面向对象三大特性之一 多态分为两类: 静态多态:函数重载 和 运算符重载 属于静态多态 复用函数名 动态多态:派生类 和 虚函数 属于 运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 - 编译阶段确定函数地址 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 1 cla 阅读全文

posted @ 2023-07-25 17:28 廿陆 阅读(3) 评论(0) 推荐(0) 编辑

C++Note继承 菱形继承
摘要:菱形继承概念: 两个派生类继承同一个基类 又有某个类同时继承这两个派生类 这种继承被称为菱形继承,或者钻石继承 菱形继承产生的问题: 1.羊继承了动物的数据,驼同样继承了动物的数据, 当羊驼使用数据时, 会产生二义性 2.羊驼继承自动物的数据继承了两份 vbptr:虚基类指针 指向 vbtable 阅读全文

posted @ 2023-07-25 17:19 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++Note 同名静态成员处理 继承语法
摘要:1 class Base 2 { 3 public: 4 static int m_A;// 静态成员 类名声明 类外初始化 5 }; 6 int Base::m_A = 100; 7 class Son :public Base 8 { 9 public: 10 static int m_A; 1 阅读全文

posted @ 2023-07-25 16:52 廿陆 阅读(4) 评论(0) 推荐(0) 编辑

C++Note 继承的对象模型 构造和析构 同名成员处理方式
摘要:继承中的对象模型 从父类继承过来的成员,那些属于子类的对象中?//继承后 父类的私有成员只是被隐藏了,但是还是会继承下去 使用工具 Developer Command Prompt for... 跳转盘符 进入所属文件路径 D:(进入D盘) cd 路径 进入cpp文件路径 键入 :dir 列出文件中 阅读全文

posted @ 2023-07-12 18:06 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++Note 继承和继承方式
摘要:继承 继承是面向对象三大特性之一 有些类与类之间存在特殊的关系 如图 定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性,这个时候就利用继承的技术,减少重复代码 1 #include <iostream> 2 using namespace std; 3 //语法: class子类 : 阅读全文

posted @ 2023-07-12 11:47 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++Note 运算符重载 函数调用
摘要:函数调用运算符重载 函数调用运算符()也可以重载 由于重载后使用的方式非常像函数的调用,因此称为仿函数 仿函数没有固定写法 1 #include <iostream> 2 using namespace std; 3 //函数调用运算符重载 4 //打印输出类 5 class MyPrint 6 { 阅读全文

posted @ 2023-07-12 11:39 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++Note 运算符重载 关系运算符
摘要:关系运算符 作用:重载关系运算符,可以让两个自定义类型对象进行对比操作 1 #include <iostream> 2 using namespace std; 3 //重载关系运算符 4 class Person 5 { 6 public: 7 Person(string name, int ag 阅读全文

posted @ 2023-07-12 11:15 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++Note 运算符重载 赋值
摘要:赋值运算符重载 C++编译器至少给一个类添加4个函数 1.默认构造函数(无参,函数体为空) 2.默认析构函数(无参,函数体为空) 3.默认拷贝构造函数,对属性进行值拷贝 4.赋值运算符 operator= ,对属性进行值拷贝(可能有深浅拷贝问题) 如果类中属性指向堆区(程序员自己开辟释放管理的区域) 阅读全文

posted @ 2023-07-11 18:31 廿陆 阅读(7) 评论(0) 推荐(0) 编辑

C++Note 运算符重载 递增 operator++
摘要:递增运算符重载 作用:通过重载递增运算符,实现自己的整型数据 1 #include <iostream> 2 using namespace std; 3 //递增运算符重载 4 //自定义整型 5 class MyInteger 6 { 7 friend ostream& operator<<(o 阅读全文

posted @ 2023-07-11 16:24 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++Note 运算符重载 左移 operaotr<<
摘要:左移运算符重载 作用:可以输出自定义数据类型 写新的函数的时候不知道返回什么 先写为 void 之后根据实际情况更改。 void operator<<(ostream& cout,Person& p); ostream& operator<< (ostream& cout, Person& p); 阅读全文

posted @ 2023-07-11 13:07 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++Note 运算符重载 加号 operator+
摘要:运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 加号运算符重载 作用:实现两个自定义数据相加的运算 PersonAddPerson可能会有多个名称 编译器提供通用名称:operator+ 1 #include <iostream> 2 using namespac 阅读全文

posted @ 2023-07-11 12:41 廿陆 阅读(13) 评论(0) 推荐(0) 编辑

C++Note 友元
摘要:程序中,有些私有属性,也想让类外特殊的一些函数或者类进行访问 友元的目的是让 一个函数或者类 访问另一个类中的私有成员 友元的关键字:friend 友元的三种实现: 类做友元 全局函数做友元 成员函数做友元 1 #include <iostream> 2 using namespace std; 3 阅读全文

posted @ 2023-07-11 11:28 廿陆 阅读(4) 评论(0) 推荐(0) 编辑

C++Note const修饰成员函数常函数和常对象
摘要:常函数: 成员函数后加const后称这个函数为 常函数 常函数内不可以修改成员属性 成员属性声明时加关键字 mutable后 在常函数中依然可以修改 常对象: 声明对象前加const称该对象为 常对象 常对象只能调用常函数 1 #include <iostream> 2 using namespac 阅读全文

posted @ 2023-07-11 10:03 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++Note 空指针访问成员函数
摘要:1 #include <iostream> 2 using namespace std; 3 4 class Person 5 { 6 public: 7 void showClassName() 8 { 9 cout << "This is Person Class" << endl; 10 } 阅读全文

posted @ 2023-07-10 18:34 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++Note 指针和地址 -> & . .指针的指针
摘要:a->b 的含义是 (*a).b 地址:在计算机存储器中每个存储单元都有一串连续的编号,这些编号,称为地址。 例如,定义一个变量的时候,如: 1 int a; 这条语句是在内存中申请 sizeof(int) = 4个字节的内存空间 可能如图: 因此执行如下代码: std::cout<<&a; 对于上 阅读全文

posted @ 2023-07-07 10:47 廿陆 阅读(11) 评论(0) 推荐(0) 编辑

C++Note 类中成员变量 this指针
摘要:成员变量和非成员变量(静态和非静态): 1 #include <iostream> 2 using namespace std; 3 4 //类内的成员变量和成员函数是分开存储的 5 //只有非静态成员变量才属于类的对象上 6 class Person1 7 { 8 //空类 9 }; 10 cla 阅读全文

posted @ 2023-07-03 16:56 廿陆 阅读(11) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示