c++ - 结构操作,代码不起作用?

标签 c++

假设您获得三个变量:收入、支出和利润,所有变量均为 Money 类型(具有两个 int 字段(美元和美分)的结构化类型)。将收入减去费用的结果分配给利润。让我们做出一个愉快的假设:收入超过支出。然而,您仍然可能会发现支出的美分部分超过了收入的部分。如果是这种情况,您将必须从收入美元中“借”1(即减去 1)并将其“给予”收入美分(即加 100!),以便正确执行减法。

这是我所拥有的,但它不起作用:

if (revenue.cents < expenses.cents)
   {
    revenue.dollars = revenue.dollars -1;
    revenue.cents = revenue.cents + 100;
    profit = revenue - expenses;
   }
else 
   {
    profit = revenue - expenses;
   }

我收到此错误消息: 错误:“收入 - 支出”中的“operator-”不匹配

感谢任何帮助。谢谢。

最佳答案

您收到该错误是因为您无法从一个结构中减去另一个结构。您必须为您的struct定义一个operator-()函数。

关于c++ - 结构操作,代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443578/

相关文章:

c++ - 您将如何对函数的性能进行基准测试?

c++ - 这在 C++ 中合法吗?

c++ 2d数组访问速度根据[a] [b]顺序变化?

c++ - 裸机 C++ 中的 std::streambuf 实例化

c++ - 使用 map::find 查找键并返回值

c++ - 适用于 begin() 但不适用于 rbegin() 的映射迭代器

c++ - 如何在没有外部库的情况下使用 C++03 约束执行基于正则表达式的字符串操作?

c++ - for循环优化c++

c++ - posix 管道作为消息队列 : What happens on blocked write + signal

c++ - cpp 多重继承意外构造函数调用