簡體   English   中英

如何在c ++中使用通用的Friend函數?

[英]How to use a common Friend Function in c++?

當我執行下面的代碼時,它會在第9行中生成2個錯誤c1 :: x,無法訪問,並且缺少)。 請解釋。 提前致謝...

#include<iostream>
class c1{
    int x;
    public:
    void input(){
        cout<<"Enter length : ";
        cin>>x;
    }
    friend void output(c1 obj1, c2 obj2);
};
class c2{
    int y;
    public:
    void input(){
        cout<<"Enter breadth : ";
        cin>>y;
    }
    friend void output(c1 obj1, c2 obj2);
};
void output(c1 obj1, c2 obj2){
    cout<<"Area is "<<obj1.x*obj2.y;
}
int main(){
    c1 obj1;
    c2 obj2;
    clrscr();
    obj1.input();
    obj2.input();
    output(obj1, obj2);
    getch();
    return 0;
}

朋友功能需要知道類c1c2存在。 c1很好,因為在該類中聲明了with。 但是對於c2您需要在第一個friend聲明之前進行前向聲明:

#include<iostream>

using std::cin;
using std::cout;

class c2; // forward declaration

class c1{

 ....
  friend void output(c1 obj1, c2 obj2); // OK now

};

我還添加了一些缺少的聲明。 您還需要getchclrscr的標頭。

暫無
暫無

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

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