![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
文章平均质量分 70
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
EXCEPTION——出人意料的异常
处理除数为零的异常 #include<stdexcept> using std::runtime_error DivideByZeroException:public runtime_error { //继承runtime_error类 public: DivideByZeroException():runtime_error("attempt to divided by zero") {} }; #include"DivideByZeroException.h" double原创 2020-06-03 23:26:22 · 525 阅读 · 0 评论 -
因为时间紧,所以飞速讲完类模板
栈:先进后出 数据结构: size:栈的大小 top: 栈顶位置,初始值为-1(空栈) stackPtr :存储栈中元素的一组连续存储空间 操作: push:如果栈不满,则向栈中增加一个元素,top增1 pop: 如果栈不空,则从栈中弹出一个元素,top减1 isEmpty:如果top为-1,则栈为空 isFull:如果top为size-1,则栈满 需求:建立栈的类模板,满足不同类型的元素 //Stack.h //创建类模板Stack,包含类型参数T #ifndef STACK_H #defi.原创 2020-05-27 23:45:52 · 228 阅读 · 0 评论 -
这样的文件操作有点玄——文件流学习 ( 三 )
这次我们要重点讨论一个更加厉害的东西:二进制文件原创 2020-05-13 20:51:12 · 273 阅读 · 0 评论 -
这样的文件操作有点玄——文件流学习 ( 二 )
在之前的文件流学习中,我们重点解决了文件读入和输出的问题,今天我们就接着上次的话头继续咯。 文件位置指针 之前讨论的读写操作,都是 " 从头开始 " 的操作:从首位开始读入数据,从首位(如果没有特殊声明会将文件中原有的数据清空)开始写入数据 如果我们要定义特殊的起始位置进行文件读写呢? 指向下一个将要读或写的字节位置 istream & ostream类为此设置了专门的成员函数: istream::seekg(streampos); //读指针直接定位 istream::seekg(stream原创 2020-05-11 23:34:52 · 290 阅读 · 3 评论 -
这样的文件操作有点玄——文件流学习 ( 一 )
临时存储:变量和数组 永久存储:文件 保存大量的数据 存储在二级存储设备中 Magnetic disks Optical disks Tapes 文件的基本概念: 这里的文件指的是磁盘文件 C++文件分为两类:二进制文件和文本文件 由文本文件又字符序列组成,也称 ...原创 2020-04-29 20:24:11 · 348 阅读 · 0 评论 -
类的应用实例:高精度加减
高精度加减并不难,但是套到类上就level up了 很久没有贴完整代码了,然而感觉这道题可以充分体现: 构造函数的重载 构造函数的巧妙应用 将对象作为返回类型的函数 将对象作为传入参数的函数 理解:类内部可以自由调用私有数据成员(无论是当前对象的私有数据成员,还是成员函数内定义的新对象的私有数据成员) 对拷贝构造函数的初步理解 对耐心与毅力的严峻考验 程序姬的基本职业素养 。。。 总的来说这是...原创 2020-03-04 19:59:51 · 279 阅读 · 1 评论 -
C++类&&对象的深入研究
没错,C_T开学了 和亲爱的副教授视频上课,真开心啊 先复习一下类&&对象和函数的知识点 常见的数据类型有: 基本数据类型 整型,实型(单精度,双精度) 字符型 构造类型 枚举类型 数组类型 结构体类型,联合类型,类 引用 指针类型 空类型 而这里我们要重点讨论的是—— 类 类由数据和处理数据的函数封装而成 类是一种可以 " 发展 " 的数据类型,即一个类可以...原创 2020-03-04 22:17:26 · 2069 阅读 · 0 评论 -
C++类&&对象的二次深入研究
const对象 & const成员函数 一些对象是支持修改的,而另外一些是坚决不允许修改的。我们可以使用关键字const来指定对象为不可修改,这样任何试图修改对象的操作都将导致编译错误。 将变量和对象声明为const可以提高性能,编译器可以对常量提供某些针对const关键字的特殊优化 class Time{ public: Time(int h,int m,int s):hou...原创 2020-03-11 23:35:36 · 355 阅读 · 0 评论 -
C++类&&对象的深入研究(再补充亿点点)
凡事就怕反向flag (也许是我的文章名称起得太钓鱼执法了?那篇日常的浏览量噌噌得涨哎。。。) 下面我们介绍这章节的最后一部分内容: 静态数据成员和成员函数 静态数据成员 至多初始化一次 若没有显式初始化 静态整型的数据成员缺省初始化为0 静态抽象数据类型(类对象)的数据成员默认调用其缺省构造函数 显式初始化 静态常量整数成员可以在类定义中初始化(const static integr...原创 2020-03-16 18:55:21 · 275 阅读 · 2 评论 -
运算符重载(输入输出流运算符重载实例)
C++运算符_菜鸟教程 C++内置了多种运算符,支持基本数据类型运算,其中的部分运算符已针对不同操作数类型进行了重载 将这些运算符用于自定义类型时,可进行运算符重载 运算符重载只是一种 “ 语法上的方便 ” ,也就是说这是另一种函数调用方式 基本语法 定义重载的运算符(可视为特殊函数)就像定义(全局或类的成员)函数一样,有一个小小的区别是函数的名称: operator@ 其中operat...原创 2020-03-23 18:46:26 · 1727 阅读 · 0 评论 -
运算符重载(进阶学习)
一元运算符重载 例如 " ! " class Calculator{ public: bool operator!() const; }; class Calculator{ friend bool operator!(const Calculator &); }; 二元运算符重载 例如 " < " class Calculator{ public: bo...原创 2020-04-01 21:33:27 · 248 阅读 · 0 评论 -
类和运算符重载的完美结合:高精度四则运算
//HugeInt.h #ifndef HUGEINT_H #define HUGEINT_H #include<iostream> using std::ostream; class HugeInt { friend ostream &operator<<( ostream &output, const HugeInt &A) { for...原创 2020-04-08 18:05:54 · 341 阅读 · 3 评论 -
多态与虚函数 —— 解决指针调用问题
前情提要 class B 继承 class A,本质上就是:B is a A 大家一定要牢牢记住这句话,因为这篇blog所有的讨论,都是由此生发出来的 那么今天我们要讨论一个什么问题呢? 用指针访问成员函数的优美姿势 用指针point to对象吧 众所周知,在定义指针的时候,指针类型应该和指向的变量类型一致 但是由于派生类和基类之间的奇妙联系,我们可以将基类指针指向派生类 (具体规则见下表) ...原创 2020-04-22 16:22:56 · 711 阅读 · 0 评论 -
继承与派生——从未接触过的船新姿势哦
之前我们讲述的是类之间的嵌套关系,下面我们要介绍一个全新的操作——继承(派生) 简介 继承与派生其实是同一过程从不同的角度看 我们将保持已有类的特性而构造新类的过程称为继承,简单来说继承的目的就是实现原来设计与代码的重用,希望尽量利用原有的类 然而当新的问题出现,原有程序无法解决或不能完全解决时,需要对原有程序进行改造,在已有类的基础上新增自己的特性而产生新类的过程称为派生 基类(或父类):被...原创 2020-04-15 19:05:34 · 252 阅读 · 0 评论 -
运算符重载 ( ++的重载实例)
我们这里选择重点讲解前置/后置自增的重载 前置/后置自减就是一个道理啦 前置自增 ++num 前置自增:先自增再取值 重载前置自增允许有两种形式 成员函数: num.operator++() Data &operator++(); 全局函数: operator++(num) Data &operator++(Data &); 需要提醒大家的是,在重载前置自增的时候,...原创 2024-03-13 16:26:36 · 502 阅读 · 0 评论