c++ 如何判断同一类的不同对象的相应成员是否相等

如题所述

这要看成员的类型是否能直接使用等号进行比较,以及是否有直接访问该成员的权限。
一般的能使用等号,有访问权:A.mem1 == B.mem1

不能使用等号,有访问权:isEqual(A.mem1, B.mem1)
如果没有访问权,那应该有访问函数: A.getMem1() == B.getMem1() 或
isEqual(A.getMem1(), B.getMem1())

如果这个类是你自己写的,你可以直接加一个成员函数:isMem1Equal
A.isMem1Equal(B)
温馨提示:内容为网友见解,仅供参考
无其他回答

c++ 如何判断同一类的不同对象的相应成员是否相等
这要看成员的类型是否能直接使用等号进行比较,以及是否有直接访问该成员的权限。一般的能使用等号,有访问权:A.mem1 == B.mem1 不能使用等号,有访问权:isEqual(A.mem1, B.mem1)如果没有访问权,那应该有访问函数: A.getMem1() == B.getMem1() 或 isEqual(A.getMem1(), B.getMem...

C++ 小问题! 二个对象对比。
第一个:会产生临时对象。临时对象释放会调用析构 第二个:未重载== 你是如何判断两个类对象的内容相等呢?编译器不生成默认的判等即"=="操作符 再者,按程序上下文来说 if( this == &rhs )\/\/ 这个判断是防止自己赋值给自己 即 cat = cat, 判断this指针是否相等; 自己赋值给自己当然不用逐个...

C++中怎样判断两个字符型数组元素相等?
直接用C++库函数strcmp(char* a,char* b)就可以比较出两字符串是否相等,对于字符型数组也是一样的,只要分别带入数组地址就可以了。函数返回0 ,表示相等;大于0表示字符串a大于字符串b;反之小于则串a小于b。而这里的库函数做的比较是一次比较字符串中相同位置的单个字符的ASCII得出的结果。你也可...

C++ 判断自定义类相等
当然要重载,比如类里有几个成员对象,你不重载怎么可以知道等不等,不过我还没有重载过“==”,代码好写就不多说了,如下是可以重载的运算符和不可以重载的运算符:可以重载的运算符:双目运算符 + - * \/ 关系运算符 == != < > <= >= 逻辑运算符 || && + 单目运算符 ...

C++中判断两个字符串是否相等,怎么判断
可以使用库函数strcmp判断,具体如下:strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, char *b);该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1。所以,要判断字符串相等,可以使用。

C++中如何判断两个字符串是否相等?
C语言中比较两个字符串是否相等的方法是使用strcmp函数。它的形式是:strcmp(str1, str2) == 0(成立则两个字符串相等),它需要在编译器开头加上#include<string.h>头文件。它的作用是接受两个参数,并用前者去减后者。如果为0就是相等。如果负数,前者在ASCLL表的代码比后者小。举例:include<...

c++ 类的两个不同实例如何相互访问对方的成员变量
属于同一个类的两个对象是产生出来的类的两个不同的实例,显然不能互相访问私有成员变量 有相同的属性和方法是不错,不过它只能访问自己的成员变量,不能访问其他实例的成员变量 一个类的私有成员连它派生出来的子类都无法访问,其他类更不能访问,你可以定义另一个类B,然后把B声明为作为cCat的friend...

c++中 子类对象与父类对象的内存关系
分别创建A,B对象的话,二者的地址关系是没关系的。但是对于创建的B对象来说,他的前半部分相当于一个A对象,然后紧挨着下面是自己的数据成员,如下图:

C语言中如何判断两个结构体中每项内容完全相等,除了对每个分量逐个比较...
只能进行对比,但是你要是每个成员写出来对比的话是很麻烦的事你可以用一个循环 然后使用两个指针将两个结构体强制转换为char类型指针再将这两个字符指针一 一对比这样就能检查是否相等了。

c++中 私有是对类还是对对象?从对象可以访问同类对象的私有成员来看应该...
C++类的成员函数,允许直接访问该类的其他对象的私有及保护属性的数据成员 通俗的讲,在成员函数内,同类的对象可以互相访问对方的数据成员,没有任何限制。但在非成员函数中,目的对象就只能通过调用成员函数,来实现对同类对象非public成员的访问。

相似回答