C++快速入门 第四十讲:命名空间与模块化编程2


利用C++预处理器,我们可以让头文件只在这个类还没有被声明过的情况下才声明它。作为一种固定模式,这里使用常量名通常与相应的文件名保持一致(换成大写),把句号替换为下划线。例如rational.h文件对应RATIONAL_H

1 Rational.h文件 2 3 //Ration.h 4 //Create by 亦我飞也 5 6 //这个头文件用来声明有理数类(Rational class) 7 //类里面对四则运算进行重载,以实现分数运算 8 9 //如果RATIONAL_H未被定义,则定义rational.h,执行定义类程序 10 //如果RATIONAL_H已经被定义,程序则直接跳到endif(即定义类程序只会执行一次) 11 #ifndef RATIONAL_H//如果没有定义rational.h 12 13 #define RATIONAL_H//定义rational.h 14 15 #include <iostream> 16 17 class Rational//定义基类 18 ; 35 36 #endif//如果已经定义rational.h,则结束 37 Rationalpp文件 38 39 #include <iostream> 40 #include <string> 41 #include <math.h> 42 #include "Rational.h"//系统级别用单尖括号,自定义级别用双引号 43 44 using namespace std; 45 46 Rational::Rational(int num,int den)//构造函数实现 47 53 //normalize()对分数进行简化操作包括: 54 //1.只允许分子为负数,如果分母为负数则把负数挪到分子部分,如1/2==1/2 55 //2.利用欧几里德算法(辗转求余原理)将分数进行简化:2/10 => 1/5 56 57 void Rational::normalize() 58 65 //欧几里德算法 66 int a = abs(numerator); 67 int b = abs(deninator); 68 69 //求出最大公约数 70 while(b>0) 71 76 77 //分子、分母分别除以最大公约数得到最简化分数 78 numerator /= a; 79 deninator /= a; 80 } 81 //a c a*d c*b a*d + c*d 82 // + = + = 83 //b d b*d b*d b*d 84 Rational Rational::operator+(Rational rhs)//分数的加运算 85 96 //a c a c 97 // = + 98 //b d b d 99 Rational Rational::operator(Rational rhs)//分数的减运算 100 104 //a c a*c 105 // * = 106 //b d b*d 107 Rational Rational::operator*(Rational rhs)//分数的乘运算 108 119 //a c a d 120 // / = * 121 //b d b c 122 Rational Rational::operator/(Rational rhs)//分数的除运算 123 131 132 ostream& operator<<(ostream& os,Rational f)//并不属于Rational类,是一个独立的函数 133 140 141 void call_love_fishc()//输出爱心 142 157 else 158 169 } 170 171 } 172 173 mainpp文件 174 175 #include <iostream> 176 #include "includes\\fishc.h"//此处表示fish.h在includes目录中 .\\表示在当前目录 ..\\表示在上一级目录 177 #include "Rational.h"//系统级别用单尖括号,自定义级别用双引号 178 #include <string> 179 #include <math.h> 180 181 using namespace std; 182 int main() 183


上一篇:Python基础入门学习笔记 000 愉快的开始

下一篇:Python基础入门学习笔记 010 列表:一个打了激素的数组


C/C&#x2B;&#x2B;
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图