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