斗破C++目录:
斗破C++编程入门系列之前言(斗之气三段)
斗破C++编程入门系列之二:Qt的使用介绍(斗之气三段)
斗破C++编程入门系列之三:数据结构(斗之气三段)
斗破C++编程入门系列之四:运算符和表达式(斗之气五段)
斗破C++编程入门系列之五:算法的基本控制结构之选择结构(斗之气八段)
斗破C++编程入门系列之六:算法的基本控制结构之循环结构(斗之气八段)
斗破C++编程入门系列之七:自定义数据类型(斗之气八段)
斗破C++编程入门系列之八:函数的定义与调用(斗之气八段)
斗破C++编程入门系列之九:函数重载与模板函数(斗之气九段)
鸡啄米C++
记住首页不迷路:
http://www.jizhuomi.com/software/129.html
斗破观看顺序:
https://v.haohuitao.cc/yhplay/336-1-2.html
第一季☞第二季前2集☞特别篇1☞第二季3~12集☞特别篇2沙之澜歌☞第三季☞第四季☞三年之约☞缘起☞年番
斗气大陆等级:
斗气有十一个阶别,斗之气,斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗圣,斗帝。
斗气大陆上很久没有出现过斗帝了。
一、故事:医仙
为了探查加列家族的进药情况,萧炎孤身一人来到了魔兽山脉,魔兽山脉是众多魔兽的聚集地,同时也是各种稀奇药材的宝库,所以这里常年会吸引许多采药团进行采药,而采药团因为没有护卫,所以进山前会和一些佣兵团一同进入,寻得宝物后五五平分。
突然,远处传来一个女孩子的呼救声,一群魔兽“合猿”正在追赶一个女孩子,这个“合猿”名声极差是个十足的坏猿。萧炎见状及时救下了女子,得知女子叫“小医线”,是个采药人,家住青山镇万药斋。小医仙为了让萧炎能够护送自己回到青山镇,答应事后会将加列家族的进药路线告知。在回青山镇的途中,小医仙发现了一个神秘的洞口,在好说歹说下请求萧炎可以同她一起进洞寻宝,是否一无所获,还是别有洞天,请听下回分解。
二、C++:函数重载与模板函数(斗之气九段)
如果两个函数同名,但是参数不同,那么这就叫做重载。代码如下:
#include "mainwindow.h"
#include <QApplication>
#include <QDataStream>
#include <QDebug>
//定义类型
struct Person{
QString name; //名字
int age; //年龄
int level; //斗之气等级
};
//函数:功能是升级斗之气等级, 默认只能升一级
void level_up(Person & anyone){
//斗气等级提升
anyone.level = anyone.level + 1;
}
//函数:功能是升级斗之气等级,指定生几级
void level_up(Person & anyone, int value){
//斗气等级提升
anyone.level = anyone.level + value;
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Person xiaoyan; //萧炎
xiaoyan.name = "xiaoyan";
xiaoyan.age = 17;
xiaoyan.level = 8;
qDebug() << "萧炎目前的斗之气等级 " << xiaoyan.level;
level_up(xiaoyan);
qDebug() << "升级后的斗之气等级 " << xiaoyan.level;
//使用重载函数,连升3级别
level_up(xiaoyan,3);
qDebug() << "升级后的斗之气等级 " << xiaoyan.level;
return a.exec();
}
好了,我们看看另外一个,模版函数,我举个例子,斗气大陆也有魔兽,魔兽也会升级,那我想用函数给魔兽升级,用之前给人类升级的函数就不能用了,必须再写一个函数,是不是很麻烦。
这个时候模版函数出现了,它允许一个函数传入不同类型的参数,实现相同的功能,请看下面的代码
#include "mainwindow.h"
#include <QApplication>
#include <QDataStream>
#include <QDebug>
//定义人的类型
struct Person{
QString name; //名字
int age; //年龄
int level; //斗之气等级
};
//魔兽的类型
struct Monster{
QString name; //名字
int level; //斗之气等级
};
//函数:功能是升级斗之气等级, 默认只能升一级
template <typename T>
void level_up(T & anyone){
//斗气等级提升
anyone.level = anyone.level + 1;
}
//函数:功能是升级斗之气等级,指定生几级
template <typename T>
void level_up(T & anyone, int value){
//斗气等级提升
anyone.level = anyone.level + value;
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Person xiaoyan; //萧炎
xiaoyan.name = "xiaoyan";
xiaoyan.age = 17;
xiaoyan.level = 8;
qDebug() << "萧炎目前的斗之气等级 " << xiaoyan.level;
level_up(xiaoyan);
qDebug() << "升级后的斗之气等级 " << xiaoyan.level;
//使用重载函数,连升3级别
level_up(xiaoyan,3);
qDebug() << "升级后的斗之气等级 " << xiaoyan.level;
//创建一个魔兽
Monster monkey;
monkey.name = "monkey";
monkey.level = 1;
qDebug() << "合猿目前的斗之气等级 " << monkey.level;
level_up(monkey);
qDebug() << "合猿升级后的斗之气等级 " << monkey.level;
return a.exec();
}
现在大家可以看到level_up可以同时升级人和魔兽的等级,大家可以打印一下,看看结果。
模版函数一般在后期整合和优化代码的时候会用到,这里面用的T参数可以用其他字母代替,比如A,B,C。一开始写代码的时候并不会考虑的那么周全,所以Ctrl+C然后Ctrl+V是写代码中很常见的操作(笑场)。
三、英语:
先来看几个单词
- template:模版
- overload:重载
- Monster:怪兽
- Monkey:猴子
再来看个句子:
- Is it(这个) nothing(无任何东西), or is there(那里) another(其他的) world(世界)?
- 是否一无所获,还是别有洞天