抽象类与纯虚函数


在这个类当中,我们定义了一个普通的虚函数,并且也定义了一个纯虚函数。
纯虚函数:从上面的定义可以看到,纯虚函数就是没有函数体,同时在定义的时候,其函数名后面要加上“= 0”。

1.在类成员方法的声明(不是定义)语句前面加个单词:virtual,她就会摇身一变成为虚函数。
2.虚函数的声明语句末尾中加个 =0 ,她就会摇身一变成为纯虚函数。
3.子类可以重新定义基类的虚函数,我们把这个行为称之为复写(override)。

附上一个c++期末考试的题目,抽象类得记住!
请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,
二者都有计算对象面积的函数getArea()、计算对象周长的函数getPerim()

#include <bits/stdc++.h>
using namespace std;class Shape{public:Shape(){}~Shape(){}public:virtual double getArea() const = 0;virtual double getPerim() const = 0;private:
};class Rectangle : public Shape{public:Rectangle(double _length, double _width) : length(_length), width(_width){}~Rectangle(){}public:double getArea() const {return length * width;}double getPerim() const {return 2 * (length + width);}private:double length;double width;
};class Circle : public Shape{public:Circle(double _radius) : radius(_radius){}~Circle(){}public:double getArea() const {return radius * radius * M_PI;}double getPerim() const {return 2 * M_PI * radius;}private:double radius;
};int main() {Rectangle * rec = new Rectangle(2, 3);Circle * cir = new Circle(3);cout << rec->getArea() << endl;cout << rec->getPerim() << endl;cout << cir->getArea() << endl;cout << cir->getPerim() << endl;
}

string

string newname(char[], pos) 切割0-pos的字符并存入newname
string newname(char[], pos, pos+length) 切割从下标为pos开始的length个长度的字符存入newname

#include<iostream>
using namespace std;
char ID[10];
cin >> ID;
string year(ID, 4);
string department(ID, 4, 2);
string c(ID, 6, 2);
cout << "year:" << year << endl << "department:" << department << endl << "class:" << c << endl;
查找最大元素

知识点insert
1.在index位置插入count个字符ch
string str = “meihao”; string sstr = str.insert(0,2,‘a’);//aameihao
2.index位置插入一个常量字符串
string str = “meihao”;string sstr = str.insert(1,“hello”);//mhelloeihao
/index位置插入常量string
string str = “meihao”;string sstr = str.insert(1,str);//mmeihaoeihao

Problem Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
Sample Input

abcdefgfedcba
xxxxx

Sample Output

abcdefg(max)fedcba
x(max)x(max)x(max)x(max)x(max)
#include<bits/stdc++.h>
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
int main() {fiostring s;while (cin >> s) {char m = s[0];for (int i = 0; i < s.length(); i++)if (s[i] > m) m = s[i];for (int i = 0; i < s.length(); i++) {if (s[i] == m) {s.insert(i+1, "(max)");i=i+5;}}cout << s<< endl;}
}

c++——抽象类以及string知识点补充相关推荐

  1. 计算机网络知识点补充

    计算机网络知识点补充 目录: 1. HTTP和HTTPS的区别 http协议是运行在tcp之上,明文传输,客户端和服务器端都无法验证对方的身份:https是运行在ssl(Secure Socket L ...

  2. set集合以及知识点补充

    str知识点补充: #join() 将列表中的每个元素中间加上一个字符,连接成一个字符串 list = ['a','b','c','d'] str = '*'.join(list) print(str ...

  3. Jaeger知识点补充

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos <Jaeger实战(Java版)>系列全文 ...

  4. 云日记_登出操作个人中心页面js和jsp知识点补充

    用户退出     前端:         设置超链接的请求地址  user?actionName=logout     后台:         1. 销毁Session对象         2. 删除 ...

  5. Python-day06-2018.7.9_编码以及小知识点补充

    本节知识点: 1.is 和 == 的区别 2.编码的问题 一.is 和 == 的区别 1.id()  通过id我们可以查看到一个变量表示的值在内存中的地址. s = 'alex' print(id(s ...

  6. 基于python的openCV自学笔记(四)——遗漏知识点补充

    本篇补充暑假学opencv遗漏的相关知识点 参考链接:https://www.bilibili.com/video/BV1Fo4y1d7JL?from=search&seid=17628666 ...

  7. SQLZOO知识点补充

    背景 目前复习sql语言,在前几篇博客详细描述了sql的语法,但是在刷sqlzoo过程中遇到一些没有学习的知识点,在这篇博客进行总结. 之前的复习笔记,可以作为参考:https://blog.csdn ...

  8. 英语——平时遇到重要知识点补充【不断更新中】

    全部知识点请进入:专升本英语--学习笔记[知识点全轻松学习]!!! https://blog.csdn.net/liu17234050/article/details/104576823 目录: 一: ...

  9. cms是什么意思啊_GC 知识点补充——CMS

    之前已经讲过了不少有关 GC 的内容,今天准备将之前没有细讲的部分进行补充,首先要提到的就是垃圾收集器. 基础的回收方式有三种:清除.压缩.复制,衍生出来的垃圾收集器有: Serial 收集器 新生代 ...

最新文章

  1. 记录智能指针使用shared_ptr使用错误
  2. Python读取文件夹下的所有文件,并获得文件中的2-10行的信息
  3. 终于有人解救Python人了!
  4. python类装饰器详解-Python 装饰器详解
  5. Java配置dbeaver_ubuntu我的工具安装 eclipse、dbeaver、jdk、kdesvn、
  6. 2.16 关于 Python Numpy 的说明-深度学习-Stanford吴恩达教授
  7. PyTorch随笔-0
  8. 深入掌握JMS(六):消息头
  9. 大数据-HDFS 配置与使用
  10. The file “XXX.app” couldn’t be opened because you don’t have permission to view it.问题修复...
  11. 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
  12. 账户系统,余额与体现
  13. 服务器系统安装蓝牙驱动,Atheros Bluetooth蓝牙设备驱动
  14. winform c# chart控件添加边界值线条以及扩展性功能
  15. 最小二乘支持向量回归Matlab实现
  16. 关于双模键盘的模式转化
  17. python怎么读取表格中的数据_如何用Python读取电子表格中的数据,面试必学
  18. 《关键对话,如何高效能沟通》读书笔记(上)
  19. 做一名有幸福感的计算机教师,做一名有职业幸福感的教师为题目的作文
  20. SQLSERVER的中文排序规则

热门文章

  1. 浅析概率中的频率学派观点和贝叶斯学派观点
  2. C#实现浮动和多标签窗体解决方案---使用Dockpanel
  3. NSString的几种常用方法
  4. 《CSS基础教程》 读书笔记二
  5. window.showModalDialog模态对话框 值回传 TreeView无刷新
  6. Javascript的错误处理
  7. JS-鼠标-键盘-文档-表单事件
  8. Java生成指定范围随机数的方法
  9. 神经网络训练中的Tricks之高效BP(反向传播算法)
  10. 华为畅享max有没有人脸识别_看到Meeting视频会议一体机融合华为分布式能力,共建智能会议新体验...