无法理解为什么朋友功能不起作用
Not able to understand why friend function is not working
#include<iostream>
using namespace std;
class A;
void test(A &a);
class A
{
private:
int x;
int y;
friend void test();
};
void test(A &a)
{
a.x = 1;
a.y = 2;
cout << a.x << " " << a.y << endl;
}
int main()
{
A a;
test(a);
}
我得到的错误如下-
1.error: ‘int A::x’在此上下文中是私有的
2.error: ‘int A::y’在此上下文中是私有的
友元函数不是应该能够修改 class 的私有成员吗?
#include <iostream>
using namespace std;
class A {
private:
int x;
int y;
public:
friend void test(A &);
};
void test(A &a) {
a.x=1;
a.y=2;
cout << a.x << " " << a.y << endl;
}
int main() {
A a;
test(a);
}
我的代码有一个错误:我在 class 中给出的朋友定义是错误的
#include<iostream>
using namespace std;
class A;
void test(A &a);
class A
{
private:
int x;
int y;
friend void test(A &a);
};
void test(A &a)
{
a.x = 1;
a.y = 2;
cout << a.x << " " << a.y << endl;
}
int main()
{
A a;
test(a);
}
#include<iostream>
using namespace std;
class A;
void test(A &a);
class A
{
private:
int x;
int y;
friend void test();
};
void test(A &a)
{
a.x = 1;
a.y = 2;
cout << a.x << " " << a.y << endl;
}
int main()
{
A a;
test(a);
}
我得到的错误如下-
1.error: ‘int A::x’在此上下文中是私有的
2.error: ‘int A::y’在此上下文中是私有的
友元函数不是应该能够修改 class 的私有成员吗?
#include <iostream>
using namespace std;
class A {
private:
int x;
int y;
public:
friend void test(A &);
};
void test(A &a) {
a.x=1;
a.y=2;
cout << a.x << " " << a.y << endl;
}
int main() {
A a;
test(a);
}
我的代码有一个错误:我在 class 中给出的朋友定义是错误的
#include<iostream>
using namespace std;
class A;
void test(A &a);
class A
{
private:
int x;
int y;
friend void test(A &a);
};
void test(A &a)
{
a.x = 1;
a.y = 2;
cout << a.x << " " << a.y << endl;
}
int main()
{
A a;
test(a);
}