gpt4 book ai didi

c++ - 为什么我收到 'operator^' 不匹配的错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:29:42 26 4
gpt4 key购买 nike

我遇到了一个错误

10:13: error: no match for 'operator^' (operand types are 'std::basic_ostream<char>' and 'int')
10:13: note: candidates are:
In file included from /usr/include/c++/4.9/ios:42:0,
from /usr/include/c++/4.9/ostream:38,
from /usr/include/c++/4.9/iostream:39,
from 2:
/usr/include/c++/4.9/bits/ios_base.h:161:3: note: std::_Ios_Iostate std::operator^(std::_Ios_Iostate, std::_Ios_Iostate)
operator^(_Ios_Iostate __a, _Ios_Iostate __b)
^

代码是

// Example program
#include <iostream>
#include <string>

int main()
{
int a=1;
int b=2;

std::cout<<a^b;
}

operator ^ 可以使用哪些操作数?

最佳答案

根据Operator Precedence , operator<<优先级高于 operator^ .所以std::cout<<a^b;等同于 (std::cout<<a)^b; ; (std::cout<<a)将返回 std::cout通过引用,这是一个 std::basic_ostream<char> ;正如错误信息所说,你不能调用operator^std::cout ( std::basic_ostream<char> ) 和 int .

您可以使用括号来指定操作数应如何绑定(bind)到运算符的优先级。

std::cout << (a^b);
// ~ ~

关于c++ - 为什么我收到 'operator^' 不匹配的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com