2013-02-05 150 views
0

我是新來的C++編程,我們可以聲明一些類的成員作爲其他類的朋友。這意味着讓我們說A類有三個成員函數,而不是聲明整個類作爲其他B類的朋友(比如說)我可以只聲明A類的一個成員作爲B類的朋友,所以請幫助。朋友類聲明

回答

1

是的,你可以聲明一個成員函數作爲另一個類的朋友。
Online Sample

#include<iostream> 
class Myclass; 
class Otherclass 
{ 
    public: 
     void doSomething(Myclass &obj); 

}; 
class Myclass 
{ 
    int i; 
    friend void Otherclass::doSomething(Myclass &obj); 
}; 
void Otherclass::doSomething(Myclass &obj) 
{ 
    obj.i = 10; 
    std::cout<<obj.i; 
} 


int main() 
{ 
    Myclass obj; 
    Otherclass obj2; 
    obj2.doSomething(obj); 
    return 0; 
} 
1

在聲明朋友類時,朋友類的所有成員函數都成爲聲明朋友類的類的朋友。 source

2

是:

class A 
{ 
    public: 
     void func_1(); 
     void func_2(); 
     void func_3(); 
}; 

class B 
{ 
    friend void A::fund_2(); 
    void plop(); // only A::func_2() can call this function 
};