Console Library 4.7.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::BasicRational< T > Class Template Reference

用于表示分数的基础模板类。 More...

#include <rational.h>

Public Member Functions

constexpr BasicRational ()
 默认构造函数,构造一个值为 0/1 的分数。
constexpr BasicRational (T n)
 接受单参的构造函数,构造一个值为 n/1 的分数。
 BasicRational (T n, T d)
 接受双参的构造函数,构造一个值为 n/d 的分数。
numerator () const
 取得分数的分子。
denominator () const
 取得分数的分母。
template<class U>
 operator U () const
 显式的将一个分数转化为一个指定的数值类型。
BasicRationaloperator+= (const BasicRational &other)
 就地版本,等价于 a = a + b。
BasicRationaloperator-= (const BasicRational &other)
 就地版本,等价于 a = a - b。
BasicRationaloperator*= (const BasicRational &other)
 就地版本,等价于 a = a * b。
BasicRationaloperator/= (const BasicRational &other)
 就地版本,等价于 a = a / b。
BasicRational operator- () const
 返回相反数。
BasicRational operator+ () const
 返回自身。

Friends

BasicRational operator+ (const BasicRational &lhs, const BasicRational &rhs)
 计算两个分数的和。
BasicRational operator- (const BasicRational &lhs, const BasicRational &rhs)
 计算两个分数的差。
BasicRational operator* (const BasicRational &lhs, const BasicRational &rhs)
 计算两个分数的积。
BasicRational operator/ (const BasicRational &lhs, const BasicRational &rhs)
 计算两个分数的商。
bool operator== (const BasicRational &lhs, const BasicRational &rhs)
 比较两个分数是否相等(eq)。
bool operator!= (const BasicRational &lhs, const BasicRational &rhs)
 比较两个分数是否不等(ne)。
bool operator< (const BasicRational &lhs, const BasicRational &rhs)
 比较左操作数是否小于右操作数(lt)。
bool operator> (const BasicRational &lhs, const BasicRational &rhs)
 比较左操作数是否大于右操作数(gt)。
bool operator<= (const BasicRational &lhs, const BasicRational &rhs)
 比较左操作数是否小于等于右操作数(le)。
bool operator>= (const BasicRational &lhs, const BasicRational &rhs)
 比较左操作数是否大于等于右操作数(ge)。
std::ostream & operator<< (std::ostream &os, const BasicRational &r)
 将一个分数打印到指定输出流。
std::istream & operator>> (std::istream &is, BasicRational &r)
 从指定输入流读取一个分数。

Detailed Description

template<class T>
class console::BasicRational< T >

用于表示分数的基础模板类。

Template Parameters
T存储整数和浮点数的整数类型。

Constructor & Destructor Documentation

◆ BasicRational() [1/3]

template<class T>
console::BasicRational< T >::BasicRational ( )
inlineconstexpr

默认构造函数,构造一个值为 0/1 的分数。

◆ BasicRational() [2/3]

template<class T>
console::BasicRational< T >::BasicRational ( T n)
inlineconstexpr

接受单参的构造函数,构造一个值为 n/1 的分数。

Parameters
n分子。

◆ BasicRational() [3/3]

template<class T>
console::BasicRational< T >::BasicRational ( T n,
T d )
inline

接受双参的构造函数,构造一个值为 n/d 的分数。

在内部应用 reduce() 进行约分。

Parameters
n分子。
d分母。
Exceptions
console::domain_error若 d 为 0。

Member Function Documentation

◆ denominator()

template<class T>
T console::BasicRational< T >::denominator ( ) const
inline

取得分数的分母。

Returns
T 分子。

◆ numerator()

template<class T>
T console::BasicRational< T >::numerator ( ) const
inline

取得分数的分子。

Returns
T 分子。

◆ operator U()

template<class T>
template<class U>
console::BasicRational< T >::operator U ( ) const
inlineexplicit

显式的将一个分数转化为一个指定的数值类型。

Template Parameters
U目标类型
Returns
U 转化后的值。

◆ operator*=()

template<class T>
BasicRational & console::BasicRational< T >::operator*= ( const BasicRational< T > & other)
inline

就地版本,等价于 a = a * b。

Parameters
other乘数。
Returns
BasicRational & 即 *this。

◆ operator+()

template<class T>
BasicRational console::BasicRational< T >::operator+ ( ) const
inline

返回自身。

Returns
BasicRational *this

◆ operator+=()

template<class T>
BasicRational & console::BasicRational< T >::operator+= ( const BasicRational< T > & other)
inline

就地版本,等价于 a = a + b。

Parameters
other加数。
Returns
BasicRational & 即 *this。

◆ operator-()

template<class T>
BasicRational console::BasicRational< T >::operator- ( ) const
inline

返回相反数。

Returns
BasicRational -*this

◆ operator-=()

template<class T>
BasicRational & console::BasicRational< T >::operator-= ( const BasicRational< T > & other)
inline

就地版本,等价于 a = a - b。

Parameters
other减数。
Returns
BasicRational & 即 *this。

◆ operator/=()

template<class T>
BasicRational & console::BasicRational< T >::operator/= ( const BasicRational< T > & other)
inline

就地版本,等价于 a = a / b。

Parameters
other除数。
Returns
BasicRational & 即 *this。
Exceptions
console::domain_error如果除以零。

◆ operator!=

template<class T>
bool operator!= ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

比较两个分数是否不等(ne)。

Parameters
lhs左操作数。
rhs右操作数。
Returns
bool 如果不等 true 否则 false。

◆ operator*

template<class T>
BasicRational operator* ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

计算两个分数的积。

Parameters
lhs乘数。
rhs乘数。
Returns
BasicRational 积。
Warning
整数可能溢出。

◆ operator+

template<class T>
BasicRational operator+ ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

计算两个分数的和。

Parameters
lhs加数。
rhs加数。
Returns
BasicRational 和。
Warning
整数可能溢出。

◆ operator-

template<class T>
BasicRational operator- ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

计算两个分数的差。

Parameters
lhs被减数。
rhs减数。
Returns
BasicRational 差。
Warning
整数可能溢出。

◆ operator/

template<class T>
BasicRational operator/ ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

计算两个分数的商。

Parameters
lhs被除数。
rhs除数。
Returns
BasicRational 商。
Warning
整数可能溢出。
Exceptions
console::domain_error如果除以零。

◆ operator<

template<class T>
bool operator< ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

比较左操作数是否小于右操作数(lt)。

Parameters
lhs左操作数。
rhs右操作数。
Returns
bool 如果左 < 右 true 否则 false。

◆ operator<<

template<class T>
std::ostream & operator<< ( std::ostream & os,
const BasicRational< T > & r )
friend

将一个分数打印到指定输出流。

Parameters
os输出流。
r分数。
Returns
std::ostream & 原输出流 os 的引用。

◆ operator<=

template<class T>
bool operator<= ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

比较左操作数是否小于等于右操作数(le)。

Parameters
lhs左操作数。
rhs右操作数。
Returns
bool 如果左 <= 右 true 否则 false。

◆ operator==

template<class T>
bool operator== ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

比较两个分数是否相等(eq)。

Parameters
lhs左操作数。
rhs右操作数。
Returns
bool 如果相等 true 否则 false。

◆ operator>

template<class T>
bool operator> ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

比较左操作数是否大于右操作数(gt)。

Parameters
lhs左操作数。
rhs右操作数。
Returns
bool 如果左 > 右 true 否则 false。

◆ operator>=

template<class T>
bool operator>= ( const BasicRational< T > & lhs,
const BasicRational< T > & rhs )
friend

比较左操作数是否大于等于右操作数(ge)。

Parameters
lhs左操作数。
rhs右操作数。
Returns
bool 如果左 >= 右 true 否则 false。

◆ operator>>

template<class T>
std::istream & operator>> ( std::istream & is,
BasicRational< T > & r )
friend

从指定输入流读取一个分数。

会尽可能的在内部做一些操作,使得读取操作正常。

Parameters
is输入流。
r分数。
Returns
std::istream & 原输出流 is 的引用。

The documentation for this class was generated from the following file: