2015-09-20 26 views
-1

我有我在哪里声明作为函数的公共成员RewardCard布尔必须只有一个参数==操作符的实现文件

 bool operator ==(const RewardCard& card1, const RewardCard& card2); 

一个布尔运算符头文件我提出类的所有实现细节我定义成一个单独的文件rewards.cpp包括

我已经定义了布尔算子如下所述headerfile:

bool RewardCard::operator ==(const RewardCard& card1, const RewardCard& card2) 
{ 
    return(card1.name == card2.name && card1.id == card2.id && card1.store == card2.store) 
} 

当编译PROGR我得到一个错误,说这个函数必须只有一个参数。

我正在避免重载的朋友函数,因为我知道这些可以使用成员函数来实现。

我在做什么不正确?

回答

1

当编译程序时,我得到一个错误,说这个函数必须只有一个参数。 [...]我做错了什么?

你的编译器告诉你究竟是你做错了什么。您正在编写operator==作为参数数量错误的成员函数。它必须采取一个。

你是比较隐含this对象到另一个对象,所以你的代码应该是:

bool RewardCard::operator ==(const RewardCard& rhs) 
{ 
    return name == rhs.name && id == rhs.id && store == rhs.store; 
} 
+0

欣赏的反馈。非常有意义。 – Metamorphosis

相关问题