averagefunctor语言 - 它或VS2013有问题
CAverageFunctor - is something wrong with it or with VS2013
我有一段来自某本书的代码:)
class CAverageFunctor
{
private:
double m_fSrednia;
unsigned m_uIloscLiczb;
public:
CAverageFunctor() : m_fSrednia(0.0), m_uIloscLiczb(0) { }
void Reset() { m_fSrednia = m_uIloscLiczb = 0; }
double operator()(double fLiczba)
{
m_fSrednia = (((m_fSrednia * m_uIloscLiczb) + fLiczba)
/ m_uIloscLiczb++);
return m_fSrednia;
}
};
在书中它有自己的功能,但我很感兴趣,因为除以0:)所以我修改了:
m_fSrednia = (((m_fSrednia * m_uIloscLiczb++) + fLiczba)
/ m_uIloscLiczb);
据我所知,它应该是多重的。然后是监禁和休息,但它没有…同样2:
m_fSrednia = (((m_fSrednia * m_uIloscLiczb) + fLiczba)
/ ++m_uIloscLiczb);
这应该在除…之前递增。所以最后一个问题:我错过了什么还是VS2013只是一个坏人?哦,我不想要这样的答案:你应该从m_uIloscLiczb(1)
开始。
对于m_uIloscLiczb++
,您调用的是后自增运算符,它返回操作数在递增之前的值(在您的示例中为0)。
对于++m_uIloscLiczb
,您正在调用前缀自增运算符,它返回操作数的值,因为它是递增后的(在您的示例中,1)。
相关文章:
- 我似乎对if/else的基本语句有问题:/
- 我在范围内未声明的错误类有问题
- 我的C++语言蛮力算法有问题
- 我关于函数"Assert"的C++代码有问题
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- C++类中的友元函数有问题?
- 我对数组即 0x6dfe78 有问题
- 我对 std::unique(算法)C++有问题
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 这个模板为什么有问题?如何正确编译
- 我对 MyGraph 属性顶点名称和边权重有问题
- delete[]有问题,如何部分删除内存
- 在C++中使用exit()退出程序有问题吗
- 跳转到if(false)块有问题吗
- 查找有问题的宏
- 使用 rand() 和 srand() 有问题
- C++ 回文程序总是给出 0(假)作为输出问题;我的代码哪里有问题?
- 我在 C++ "out_of_range at memory location"有问题
- 我在 c++ 中的 AES 代码有问题。明文正在更改,但加密邮件是相同的。我找不到我的错误
- averagefunctor语言 - 它或VS2013有问题