首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ - binary '=':找不到运算符

C++中的二进制'='运算符是赋值运算符,用于将右侧的值赋给左侧的变量。当出现"binary '=':找不到运算符"的错误时,意味着编译器无法找到适当的运算符重载函数来执行赋值操作。

这种情况通常发生在以下几种情况下:

  1. 类型不匹配:赋值运算符要求左右两侧的操作数类型相同或兼容。如果左侧的变量是一个自定义类型,而右侧的值的类型与之不匹配,就会出现该错误。解决方法是确保两侧的类型匹配,或者在自定义类型中重载赋值运算符。
  2. 类型不完整:如果在赋值运算符的操作数中使用了不完整的类型,例如未声明或未定义的类或结构体,编译器将无法找到运算符重载函数。解决方法是确保使用的类型已经声明和定义。
  3. 缺少运算符重载函数:如果使用的类型是自定义类型,并且没有为该类型定义赋值运算符的重载函数,编译器将无法找到适当的函数来执行赋值操作。解决方法是在自定义类型中定义赋值运算符的重载函数。

总结起来,当出现"binary '=':找不到运算符"的错误时,需要检查赋值运算符两侧的操作数类型是否匹配,确保类型完整和定义,并且为自定义类型定义赋值运算符的重载函数。

关于C++的更多信息和学习资源,可以参考腾讯云的C++产品介绍页面:C++产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++运算符

算术运算符 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C++语法规则的式子,称C++算术表达式。运算对象包括常量、变量、函数等。...假设变量 A 的值为 10,变量 B 的值为 20,则: C++语言规定了运算符的优先级和结合性。在求解表达式时,先按运算符的优先级别高低次序执行,例如先乘除后加减。...C++规定了各种运算符的结合方向(结合性),算术运算符的结合方向为“自左至右”,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。...“自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性(例如赋值运算符)。...逻辑运算符 逻辑运算符可以将两个或多个关系表达式连接成一个或使表达式的逻辑反转。

42310

C++ 运算符重载

C++运算符重载的概念和原理 2. C++重载=(C++重载赋值运算符) 3. C++深拷贝和浅拷贝(C++深复制和浅复制) 4. C++运算符重载为友元函数 5....C++实现可变长度的动态数组 6. C++重载>(C++重载输出运算符和输入运算符) 7. C++重载()(强制类型转换运算符) 8. C++重载++和--(自增和自减运算符) 9....C++运算符重载注意事项以及汇总  1 C++运算符重载的概念和原理   如果不做特殊处理,C++ 的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。...6 C++重载>(C++重载输出运算符和输入运算符)  在 C++ 中,左移运算符<<可以和 cout 一起用于输出,因此也常被称为“流插入运算符”或者“输出运算符”。...7 C++重载()(强制类型转换运算符)  在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符

1.1K20
  • C++移位运算符

    以前看到C++标准上说,移位运算符(>)出界时的行为并不确定: The behavior is undefined if the right operand is negative, orgreater...所以,在C/C++语言中,移位操作不要超过界限,否则,结果是不可预期的。...位运算符是对每位进行操作而不影响左右两位,这有别于常规运算符(&&|| !)是将整个数进行操作的。 一. 位逻辑运算符 1....移位运算符 << 左移 左移运算符是把操作数的值的每一位向左移动,移动的位数有右边的操作数决定,右侧空出的位数用0填充 EG: 如转置第二、三位 107 = 0110 1011 <<2 << 172 =...result^=(1<<27) //任意的位值与1作按位异或操作其值为1,而与0作按位异与操作其值不变 二、C++中的bitset容器 1.头文件: #include 2.声明一个容器

    67910

    C++运算符

    C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。...C++代码: 编译执行结果如下: 2、按位与的用途: (1)清零 若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合一下条件: 原来的数中为1的位,新数中相应位为0。...148,即 10010100(148),将两者按位与运算: 0 0 1 0 1 0 1 1 (43) & 1 0 0 1 0 1 0 0 (148) = 0 0 0 0 0 0 0 0 (0) C+...--C++源代码: 编译执行后得到如下结果: 5、“取反”运算符(~) 它是一元运算符,用于求整数的二进制反码,即分别将操作数各二进制位上的1变为0,0变为1。...源代码: 编译执行后的结果如下: 8、位运算赋值运算符运算符与赋值运算符可以组成复合赋值运算符

    1.2K30

    C++C++运算符重载-基础

    本篇博客讲解: 运算符重载基础,以及实例 运算符重载基础 运算符重载就是对已有的运算符赋予新的含义,实现新的功能。...运算符重载,如“+”,它可以对int、float、string类型进行加法运算。 “>”是右移运算符,与cin配合使用被称为流提取运算符。 它们都被称为运算符重载。 我们也可以根据我们的需要对C++中现有的运算符进行重载,来赋予这些运算符新的含义。...如CTime类,重载+运算符,实现两个CTime对象的相加。 介绍运算符重载前,我们看下如何来实现两个CTime对象相加。...CTime重载+运算符实现两个CTime对象的相加, time1 + time2 首先需要定义一个重载的运算符函数,此后在执行被重载的运算符时,系统将自动调用该运算符函数。

    38210

    C++ 运算符重载

    C++运算符重载的概念和原理 2. C++重载=(C++重载赋值运算符) 3. C++深拷贝和浅拷贝(C++深复制和浅复制) 4. C++运算符重载为友元函数 5....C++实现可变长度的动态数组 6. C++重载>(C++重载输出运算符和输入运算符) 7. C++重载()(强制类型转换运算符) 8. C++重载++和--(自增和自减运算符) 9....C++运算符重载注意事项以及汇总  1 C++运算符重载的概念和原理   如果不做特殊处理,C++ 的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。...6 C++重载>(C++重载输出运算符和输入运算符)  在 C++ 中,左移运算符<<可以和 cout 一起用于输出,因此也常被称为“流插入运算符”或者“输出运算符”。...7 C++重载()(强制类型转换运算符)  在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符

    1.2K00

    C++C++运算符重载的规则

    本篇博客讲解: 运算符重载的规则,以及实例 运算符重载的规则 被重载的运算符必须是已经存在的C++运算符,不能重载自己创建的运算符运算符被重载之后,原有功能仍然保留。...可以重载的运算符: 1.算术运算符:+,-,*,/,%, 2.逻辑运算符:&&,||,! 3.关系运算符:>,=,(成员访问运算符) 、[] (下标运算符)、.new/delete、>>、<< 不能重载的运算符: ?...(成员访问运算符) *(成员指针访问运算符) ::(域运算符) sizeof(sizeof 是运算符,而不是函数) 不需要重载的运算符 =(赋值)和&(取地址符) 因为编译器会为每个类自动实现一个默认的赋值运算符...如 有的运算符必须定义为类的成员函数 =、赋值运算符 []、下标运算符 () 函数调用运算符 有的运算符不能定义为类的成员函数,只能定义为类的友元 > 运算符重载可以在函数内执行任意的操作

    57730

    8.4 C++ 运算符重载

    C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。...C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。...实现函数重载: 函数重载是C++语言区别于C语言的重要特性,重载就是定义名称相同但符号或后面参数不同的函数,当重载时,编译器会偷偷在相同函数名的前面加上_func关键字字段,以此来实现重载后函数名不重复...: 使用<<重载左移运算符,让cout直接输出两个变量,重载左移运算符不可以写成成员函数....: 自增运算符有两种形式第一种是前置自增运算符,这一种需要定义为MyInteger& operator ++ (),而后自增运算符则需要增加一个int占位符MyInteger operator ++ (

    20320

    《挑战30天C++入门极限》C++运算符重载赋值运算符

    C++运算符重载赋值运算符   自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下...,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数。   ...赋值运算符重载函数的定义与其它运算符重载函数的定义是差不多的。   ...<<b.name<<endl<<b.url<<endl; Internet c("美国在线","www.aol.com"); b = c;//b对象已经存在,所以系统选择赋值运算符重载函数处理...在类对象还未存在的情况下,赋值过程是通过拷贝构造函数进行构造处理(代码中的Internet b = a;就是这种情况),但当对象已经存在,那么赋值过程就是通过赋值运算符重载函数处理(例子中的b = c

    41710

    C++运算符重载详解

    C++语言的一个很有意思的特性就是除了支持函数重载外还支持运算符重载,原因就是在C++看来运算符也算是一种函数。...可重载的运算符的种类 并不是所有C++中的运算符都可以支持重载,我们也不能创建一个新的运算符出来(比如Σ)。有的运算符只能作为类成员函数被重载,而有的运算符则只能当做普通函数来使用。...流运算符 描述 值 运算符种类 >> << 是否支持类成员 YES 是否支持普通函数 YES 运算单元 二元 返回类型 左值引用 流运算符C++特有的一种运算符。...函数运算符可以理解为C++对闭包的支持和实现。...这三个运算符重载的目的主要用于智能指针以及代理的实现。也是是C++从语言级别上对某些设计模式的实现。

    1.4K30

    《挑战30天C++入门极限》C++运算符重载转换运算符

    C++运算符重载转换运算符   为什么需要转换运算符?...大家知道对于内置类型的数据我们可以通过强制转换符的使用来转换数据,例如(int)2.1f;自定义类也是类型,那么自定义类的对象在很多情况下也需要支持此操作,C++提供了转换运算符重载函数,它使得自定义类对象的强转换成为可能...运行结果如下图示(注意观察内存地址,观察构造与析构过程,执行过程图中有解释):   当一个类含有转换运算符重载函数的时候,有时候会破坏C++原有规则,导致运算效率降低,这一点不得不注意。...+对无名对象的约定,Test b=Test(99);C++是会按照Test b(99);来处理的,可是由于转换运算符的加入,导致这一规律被破坏,系统会“错误的”认为你是要给对象赋值,所以系统首先利用Test...最后我们来说一下,多路径转换的多义性问题,多义性问题一直是C++编程中容易忽视的问题,但它的确是不容小视,当问题隐藏起来的时候你不会发觉,一旦触发麻烦就来了。

    45820

    C++运算符重载

    大家好,又见面了,我是全栈君   C++预定义中的运算符的操作对象只限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的,但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对运算符进行重新定义...,赋予其新的功能,以满足自身的需求 运算符重载规则   (返回类型说明符) operator(运算符) ()   (1)为了防止对标准类型进行运算符重载,C++规定重载后的运算符的操作对象必须至少有一个是用户定义的类型...  (2)使用运算符不能违反运算符原来的句法规则   (3)不能修改运算符原来的优先级   (4)不能创建一个新的运算符   (5)不能进行重载的运算符:成员运算符,作用域运算符,条件运算符,sizeof...: =赋值运算符,()函数调用运算符,[ ]下标运算符,->通过指针访问类成员的运算符。...自动类型转换   在C和C++中,如果编译器看到一个表达式或函数使用了一个不合适的类型,它经常会执行自动类型转换。在C++中,可以通过定义自动类型转换函数来为用户定义类型达到相同效果。

    50810
    领券