c_cpp C ++中的Fraction类定义。虽然它可能有用,但是,主要是我想知道你对代码的看法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++中的Fraction类定义。虽然它可能有用,但是,主要是我想知道你对代码的看法相关的知识,希望对你有一定的参考价值。

#include <string>
#include <sstream>
using namespace std;

class Fraction{
public:
	long enm;
	long dem;
	long ent;
	Fraction() { }
	Fraction(long enm, long dem);
	Fraction& operator*(Fraction);
	Fraction& operator+(Fraction);
	Fraction& operator-(Fraction);
	Fraction& operator/(Fraction);
	inline long getEnm() { return this->enm;};
	inline long getDem() { return this->dem;};
	string ToString();
private:
	bool chkr(long,long);

};

Fraction::Fraction(long enm, long dem){
	this->enm = enm;
	this->dem = dem;
}
string Fraction::ToString()
{
	string nem, dem;
	ostringstream snem, sdem, sax;
	snem << this->enm;
	nem = snem.str();
	sdem << this->dem;
	dem = sdem.str();
	if(this->chkr(this->enm,this->dem)){
		sax << this->ent;
		return sax.str();
	}

	return nem + "\n_\n" + dem;
}
Fraction& Fraction::operator+(Fraction s)
{
	long Nem = ((this->enm * s.dem) + (this->dem * s.enm));
	long Dem = this->dem * s.dem;
	return Fraction(Nem,Dem);

}

Fraction& Fraction::operator-(Fraction s)
{
	long Nem = ((this->enm * s.dem) - (this->dem * s.enm));
	long Dem = this->dem * s.dem;
	return Fraction(Nem,Dem);

}

Fraction& Fraction::operator*(Fraction s)
{
	return Fraction((this->enm * s.enm),(this->dem * s.dem));
}

Fraction& Fraction::operator/(Fraction s)
{
	return Fraction((this->enm * s.dem),(this->dem * s.enm));
}

bool Fraction::chkr(long n, long d)
{
	if((n%d) == 0){
		this->ent = n/d;
		return true;
	}
	else
		return false;
}

以上是关于c_cpp C ++中的Fraction类定义。虽然它可能有用,但是,主要是我想知道你对代码的看法的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C ++中的int list类

c_cpp c ++中的字符串类

c_cpp C ++中的通用容器可迭代数组类

头文件c ++中的类定义

c_cpp C ++中一个类中的多个大小的数组

目标C中的类继承和自定义^块执行