C++学习

多态

多态是C++面向对象三大特性之一

多态分为两类

        静态多态:函数重载和运算符重载属于静态多态,复用函数名

        动态多态:派生类和虚函数实现运行时多态

静态多态和动态多台区别:

        静态多态的函数地址早绑定 - 编译阶段确定函数地址

        动态多态的函数低着晚绑定 - 运行阶段确定函数地址

多态的优点:

        代码组织结构清晰

        可读性强

        利于前期和后期的扩展以及维护

纯虚函数和抽象类

在多态中,通常类中虚函数的实现是毫无意义的,主要都是调用子类重写内容

因此可以将虚函数改为纯虚函数

纯虚函数语法:virtual 返回类型  函数名 (参数列表) = 0;

当类中有了纯虚函数,这个类也称为抽象

抽象类特点:

        无法实例化对象

        子类必须重写抽象类中的纯虚函数,否则也属于抽象类

虚析构和纯虚机构

多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码

解决方法:将父类中的析构函数改为虚析构或者纯虚析构

虚析构和纯虚析构共性:

        可以解决父类指针释放子类对象

        都需要有具体的函数实现

虚析构和纯虚析构区别:                

        如果纯虚析构,该类属于抽象类,无法实例化对象

虚析构语法:

virtual ~类名(){}

纯虚析构语法:

virtual ~类名()= 0;

文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化

C++中对文件操作需要包含头文件<fstream>

文件类型分为两种:

1.文本文件  -  文件以文本的ASCLL码形式存储在计算机中

2.二进制文件  -  文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们

操作文件的三大类:

1.ofstream:写操作

2.ifstream:读操作

3.fstream:读写操作

读文件

读文件步骤如下:

1.包含头文件

#include<fstream>

2.创建流对象

ifstream ifs;

3.打开文件并判断文件是否打开成功

ifs.open(“文件路径”,打开方式);

4.读数据

四种方式读取

5.关闭文件

ifs.close();

二进制文件

以二进制的方式对文件进行读写操作

打开方式要指定为ios::binary

写文件

二进制方式写文件主要利用流对象调用成员函数write

函数原型:ostream& write(const char * buffer,int len);

参数解释:字符指针buffer指向内存中一段储存空间。len是读写的字节数

示例:

#include<fstream>
#include<string>
class person
{
    publlic:
        char m_Name[64];
        int m_Age;
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值