一道C++程序!急用!
来源:百度知道 编辑:UC知道 时间:2024/09/27 18:19:29
题目本身是英文,不是特别好翻译,大意如此,如果谁想看英文的题目可以留e-mail给我,我发去邮箱。希望帮我做的尽量完善一些。如果有哪个高手做好了请以附件形式发到我邮箱,mrobertm@126.com
因为急用,所以希望前辈们尽快,不胜感激!
已作的程序:
#include<iostream>
#include<cstdlib>
#include<vector>
#include<map>
using namespace std;
#define ROMAN 0
#define DECIMAL 1
class romanType
{
public:
romanType(){}
~romanType(){}
romanType(char* roman);
void print(int type= DECIMAL);
void operator=(char
你不是已经用了重载了吗..?
void romanType::operator=(char* roman)
这不就是重载运算符'='了
你再写个类似的就行了,比如
void romanType::operator+(char* roman);
void romanType::operator-(char* roman);
void romanType::operator*(char* roman);
void romanType::operator/(char* roman);
这个题目就是要写出上面几个,重载+ - * / 的运算符.
我看楼主应该都会的了.不行我做了发给你吧, :)
现在干活中,下午给你.
O,把原题发给我吧,邮箱是lichengbyd@sina.com
没心思帮你做啊
overload 的意思是 重载
STL用得不错啊~
我不是太懂罗马数字,不知道是不是那么转换的。
m_decimal= 0;一句我觉得应该放到第二个有参构造函数里去。
convert函数里有两个以i为循环变量的从0到len的for循环,我觉得可以整合为一个。
其他的觉得都可以。你愿意的话可以继续做大,重载+-*/等等运算符的。
void operator=(char* roman);你自己都会写的啊。这就是重载了赋值运算符。把等号换成+-*/什么的就好啊,那就是重载了运算符。或者换个参数表(类型 数量),就是对同一个函数名的重载啊。
为什么非要用友元函数?那破坏了类的封装性。
把friend+类名拿掉也可以用的。
上班中~~~~~~~~
留个脚印,来得及的话,晚上回去看看
昨天晚上就看见此题,我也是菜鸟,为了挑战下自己,便尝试做了下。
由于电脑遭小侄儿霸占玩游戏,所以现在才帮你完成。
首先我这个程序完成的功能很单一简单,并且界面可能并非你想要的。
由于罗马数字的规则:
Ⅰ(1)Ⅴ(5)Ⅹ(10)