【发布时间】:2010-05-05 03:02:34
【问题描述】:
我在使用 C++ 中的运算符重载实现对数类时遇到了一些问题。
我的第一个目标是如何实现changeBase 方法,我一直在努力解决它。
我试图了解更改对数底数背后的数学原理,但我没能做到。谁能给我解释一下?
我的第二个目标是能够执行左操作数是 double 而右操作数是对数对象的操作。
这是我的日志类的 sn-p:
// coefficient: double
// base: unsigned int
// result: double
class _log {
double coefficient, result;
unsigned int base;
public:
_log() {
base = 10;
coefficient = 0.0;
result = 0.0;
}
_log operator+ ( const double b ) const;
_log operator* ( const double b ) const;
_log operator- ( const double b ) const;
_log operator/ ( const double b ) const;
_log operator<< ( const _log &b );
double getValue() const;
bool changeBase( unsigned int base );
};
你们太棒了,感谢您的宝贵时间。
【问题讨论】:
-
您能否更具体地谈谈您在实施基地变更时遇到的困难?
-
@James,对不起。我将编辑我的答案。
-
coefficient和number是什么?见en.wikipedia.org/wiki/Common_logarithm:是通用名称characteristic和mantissa吗? -
结果是什么?我只看到它变得随机化。结果应该从函数返回,而不是永久存储在这样的结构中。
-
另外,对数的小数部分在哪里?如果你想在除 3 之外的基数中表示数字 3,你会怎么做?
标签: c++ operator-overloading logarithm