C++ 理解布尔运算符==(参数1,参数2)
C++ 理解布尔运算符==(参数1,参数2),c++,operator-overloading,C++,Operator Overloading,bool运算符==(str\u数组a、str\u数组b) 其中str\u array是我的作业的结构。这个符号是什么意思,当我实现这个函数时,需要如何考虑这个问题,以及在我完成后如何调用它(与普通函数调用相同?) 这是第一次看到这种符号。实现是两个str\u数组变量之间的简单比较(我知道如何在没有奇怪符号的情况下实现)当您执行类似操作时(其中a和b是str\u数组) 将调用此函数 operator==是使用==调用的函数的名称。如果参数相等,则应该返回true 执行类似操作时(其中a和b是str
bool运算符==(str\u数组a、str\u数组b)
其中str\u array
是我的作业的结构。这个符号是什么意思,当我实现这个函数时,需要如何考虑这个问题,以及在我完成后如何调用它(与普通函数调用相同?)
这是第一次看到这种符号。实现是两个
str\u数组
变量之间的简单比较(我知道如何在没有奇怪符号的情况下实现)当您执行类似操作时(其中a和b是str\u数组)
将调用此函数
operator==
是使用==
调用的函数的名称。如果参数相等,则应该返回true 执行类似操作时(其中a和b是str_数组)
将调用此函数
operator==
是使用==
调用的函数的名称。如果参数相等,则应该返回true
我做完了怎么称呼它
因为您已经定义了一个操作符,所以它不像“普通”函数那样被调用!相反,它可以像“正常”操作符一样使用:
str_array a1;
str_array a2;
...
if (a1 == a2)
do_something();
stru数组sa1;
stru阵列sa2;
//.. 一些代码
如果(sa1==sa2){//这里,您正在调用您定义的==运算符
//做点什么
}
然而,实现将看起来像一个正常的功能:
bool运算符==(str_数组a、str_数组b){
布尔回答;
//..
//根据a和b的相等性设置“答案”的代码
//
返回答案;
}
我做完了怎么称呼它
因为您已经定义了一个操作符,所以它不像“普通”函数那样被调用!相反,它可以像“正常”操作符一样使用:
str_array a1;
str_array a2;
...
if (a1 == a2)
do_something();
stru数组sa1;
stru阵列sa2;
//.. 一些代码
如果(sa1==sa2){//这里,您正在调用您定义的==运算符
//做点什么
}
然而,实现将看起来像一个正常的功能:
bool运算符==(str_数组a、str_数组b){
布尔回答;
//..
//根据a和b的相等性设置“答案”的代码
//
返回答案;
}
这是运算符重载。您正在创建一个重载的=
操作符,该操作符在操作符的任一侧接受一个str_数组
对象:
str_array a1;
str_array a2;
...
if (a1 == a2)
do_something();
这是运算符重载。您正在创建一个重载的
=
操作符,该操作符在操作符的任一侧接受一个str_数组
对象:
str_array a1;
str_array a2;
...
if (a1 == a2)
do_something();
此函数
bool operator==(str_array a, str_array b);
为类型为str\u array
的对象引入重载相等运算符(运算符==)
因此,您可以将该类型的twp对象与基本类型进行比较,例如
if ( a == b ) { /* do something */ }
编译器将用表达式a==b
替换重载的运算符==
(函数)的调用
下面是一个带有两个重载运算符的演示程序:operator==
和operator此函数
bool operator==(str_array a, str_array b);
为类型为str\u array
的对象引入重载相等运算符(运算符==)
因此,您可以将该类型的twp对象与基本类型进行比较,例如
if ( a == b ) { /* do something */ }
编译器将用表达式a==b
替换重载的运算符==
(函数)的调用
下面是一个带有两个重载运算符的演示程序:运算符==
和运算符