C++ 类型 'double' 和 'const char [5]' 到二进制 'operator+' 的无效操作数

标签 c++ operands

我是 c++ 的新手,我已经学习了大约 4 周,现在我开始尝试编写自己的东西,比如我正在做的这个东西:

#include <iostream>
#include <cmath>
using namespace std;

class abcformule{
    public:
        int discriminant(double a, double b, double c){
            return pow(b, 2) - 4 * a *c;
        }

        void answer(double a2, double b2, double c2){
            cout << (-b2 + discriminant(a2, b2, c2)) / (2 * a2) + "and " + (-b2 - discriminant(a2, b2, c2)) / (2 * a2);
        }
};

int main() {
    abcformule abc;
    abc.answer(5, -2, -7);
    return 0;
}

尚未完成,但您可能会猜到,它应该使用 abc 公式来求解 x 的二次公式。 (我才14岁,不想做作业哈哈)。

所以,它给了我这个错误:

12  58  D:\c++ dev-c\abc.cpp    [Error] invalid operands of types    'double' and 'const char [5]' to binary 'operator+'

这是什么意思,我该如何解决?

最佳答案

问题是您不能像在 print 语句中那样使用“+”运算符。请改用“<<”运算符。尝试将您的 cout 语句更改为如下所示:

cout << (-b2 + discriminant(a2, b2, c2)) / (2 * a2) << " and " << (-b2 - discriminant(a2, b2, c2)) / (2 * a2) << "\n";

关于C++ 类型 'double' 和 'const char [5]' 到二进制 'operator+' 的无效操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49902824/

相关文章:

c++ - 在 C++ 中从 libxml++ 中的字符串加载 XML

c++ - C++中j+=(i=j)是什么意思

python - 如何对 Pandas RE .str.extract() 使用 RE OR 操作数

c - 为什么在写入寄存器时选择补码

c++ - Thrift TNonblockingServer.cpp未声明的标识符-Windows

c++ - 使用析构函数做工作

c++ - 重载时 friend 的替代>>?

c++ - 使用 Google Test 调试 C++ 项目时禁用异常处理

c - 扫描算术操作数 c 并将它们与字符串进行比较

c - "int i = 0"中的操作数