C++ 好友功能-can';t访问专用字段C++;
我刚刚开始学习朋友函数。 我遵循了其中一个教程,但无法使代码正常工作。 我想我犯了不少错误 我的代码:C++ 好友功能-can';t访问专用字段C++;,c++,C++,我刚刚开始学习朋友函数。 我遵循了其中一个教程,但无法使代码正常工作。 我想我犯了不少错误 我的代码: #include <iostream> using namespace std; class Sale { friend ostream& operator << (ostream, const Sale&); int receiptNum; double salesAmt; public: Sale(int,double); }; Sal
#include <iostream>
using namespace std;
class Sale
{
friend ostream& operator << (ostream, const Sale&);
int receiptNum;
double salesAmt;
public:
Sale(int,double);
};
Sale::Sale(int num,double sale)
{
receiptNum = num;
salesAmt = sale;
}
ostream operator << (ostream& out,const Sale aSale)
{
out << "Sale #" << aSale.receiptNum << " for $ " << aSale.salesAmt << endl;
return out;
}
int main()
{
Sale aShirt(1567,39.95);
cout << aShirt;
return 0;
}
#包括
使用名称空间std;
大减价
{
friend ostream&operatorfriend函数和您的实现是用不同的签名定义的。因此,它们是不同的(重载)函数:
friend ostream& operator << (ostream, const Sale&);
...
ostream operator << (ostream& out,const Sale aSale) { ... }
friend-ostream&operatorfriend函数和您的实现是用不同的签名定义的。因此,它们是不同的(重载)函数:
friend ostream& operator << (ostream, const Sale&);
...
ostream operator << (ostream& out,const Sale aSale) { ... }
<代码>朋友OsFase&操作符签名不匹配:=“朋友> OfStand运算符<代码> OSoSand运算符,它们被称为C++中的数据成员。签名不匹配:= >代码>朋友OFSUCTS和运算符<代码> OSFANS,它们被称为C++中的数据成员。ostream参数和返回类型。我已经相应地编辑了答案。@我刚刚注意到yoy的ostream参数和返回类型的引用/值不匹配。我已经相应地编辑了答案。
friend ostream& operator << (ostream&, const Sale&);
...
ostream& operator << (ostream& out,const Sale &aSale) { ... }