友元関数の使い方
1366 ワード
外部の関数、クラス内のプライベート変数へのアクセス
Aのメンバー関数、Bの友元関数として、Bのプライベートメンバーにアクセス
#include <iostream>
using namespace std;
class Message
{
public:
Message(int a,int b):x(a),y(b){}
friend void showMessage(Message &msg);
private:
int x;
int y;
};
void showMessage(Message &msg)
{
cout<<"a:"<<msg.x<<endl;
cout<<"b:"<<msg.y<<endl;
}
int main()
{
Message msg(1,2);
showMessage(msg);
return 0;
}
Aのメンバー関数、Bの友元関数として、Bのプライベートメンバーにアクセス
#include <iostream>
using namespace std;
class Message_B;
class Message_A{
public:
void showMessage_B(Message_B &msg_b);
};
class Message_B{
public:
Message_B(int x,int y):a(x),b(y){}
friend void Message_A::showMessage_B(Message_B &msg_b);
private:
int a;
int b;
};
void Message_A::showMessage_B(Message_B &msg_b)
{
cout<<"a:"<<msg_b.a<<endl;
cout<<"b:"<<msg_b.b<<endl;
}
int main()
{
Message_A msg_a;
Message_B msg_b(1,2);
msg_a.showMessage_B(msg_b);
return 0;
}