C++友元关系
普通函数类型
#include<iostream>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct object {
friend void function();
private:
int data;
public:
void input(int data) {
this->data = data;
}
void show(void) {
cout << this->data << endl;
}
};
void function() {
object data;
data.data = 123;
data.show();
};
int main(void) {
function();
return 0;
}
类之间的友元关系
#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct A;
struct B;
struct A {
friend B;
private:
int data;
public:
void show(void) {
cout << this->data << endl;
}
};
struct B {
void fri(void) {
struct A a;
a.data = 12;
a.show();
}
};
int main(void) {
B obj;
obj.fri();
return 0;
}
类的成员函数友元关系
#include<iostream>
using namespace std;
struct B {
void fri(void);
};
struct A {
friend void B::fri();
private:
int data;
public:
void show(void) {
cout << this->data << endl;
}
};
void B::fri(void) {
A a;
a.data = 12;
a.show();
};
int main(void) {
B obj;
obj.fri();
return 0;
}