簡體   English   中英

在 C++ 中使用 Friend 函數時如何糾正私有錯誤?

[英]How to rectify private error while using Friend Function in C++?

在 C++ 中使用友元函數時出現此錯誤:錯誤:'int complex::a' 在此上下文中是私有的。 我將如何糾正此錯誤? 我創建了一個復雜的類,在學習友元函數時,我了解到友元函數也可以訪問私有成員函數。 但是在這段代碼中,會彈出這個錯誤。 提前致謝。

#include <iostream>
using namespace std;


class complex{

private:
    int a, b;

public:
    void setNumber(int x,int y){a=x;b=y;}
    void getNumber(){cout << "\n a="<< a << "b=" << b; }

    friend ostream& operator <<(ostream&, complex);
    friend istream& operator >>(istream&, complex&);


};

ostream& operator <<(ostream &dout, complex c){

    cout << "a=" << c.a;
    cout << "b=" << c.b;


return (dout);
}

istream& operator <<(istream &din, complex &c){

  cin>>c.a>>c.b;

return (din);
}


int main(){

complex c1;
cin >> c1;
cout << c1;

return 0;
}

改變這個

  ostream& operator <<(ostream &dout, complex c)
  {
    cout << "a=" << c.a;
    cout << "b=" << c.b;
    return (dout);
  }

  istream& operator <<(istream &din, complex &c)
  {
   cin>>c.a>>c.b;
   return (din);
  }

ostream& operator <<(ostream &dout, const complex& c)
{
    dout << "a=" << c.a;
    dout << "b=" << c.b;
    return (dout);
}

istream& operator >>(istream &din, complex &c)
{
    din>>c.a>>c.b;
    return (din);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM