0
我在學習朋友的課程,我的問題是: 我想funcC3()設置並永久更改C1 :: a值,該怎麼做? 我想全球功能gfunc()能夠做到這一點,如何? 能否請你提供我這樣做的方式,因爲在他們沒有指定的書中?朋友在私人會員上操作的類C++
#include <iostream>
using namespace std;
class C2;
class C3
{
public:
void funcC3(int const& x)
{
cout << "in third class...: " << x << endl;
};
};
class C1
{
private:
int a;
public:
void funcC1()
{
cout << "inside C1 private thingie: " << a << endl;
};
int C1::getcha();
friend class C2;
friend int gfunc(int chair);
friend void C3::funcC3(int const& a);
};
int C1::getcha()
{
return a;
};
class C2
{
public:
int a;
};
**int gfunc(int ch)**
{
int chair = ch;
return chair;
};
**int main()**
{
C1 obj1;
C3 obj3;
obj3.funcC3(10);
obj1.funcC1();
gfunc(12);
cout << C1.geta() << endl;
system("pause");
}
感謝,我有不好的做法:)。關於gfunc(),如果我想通過gfunc(C1&c,int par)的形式從main傳遞參數100,我得到了** errorC2248,它不能從類訪問私有參數。**我認爲最好能夠以這種方式參數化? – beginh
你可以訪問C1實例的私有成員,如果它傳遞給它的朋友函數 – 4pie0
你的意思是在這種情況下明確地通過private ** a **?因爲我認爲如果我們通過整個** C1&c **,其中也包括一個成員.. – beginh