#ifndef _TEST_H
#define _TEST_H
#include <iostream>
using namespace std;
/************************************************************************/
/* public: 自身成员函数访问、对象水平访问、继承垂直访问、友员函数/类访问
protected:自身成员函数访问、继承垂直访问、友员函数/类访问
private: 自身成员函数访问、友员函数/类访问
*/
/************************************************************************/
class Merchant
{
private:
int m_Money;
void Add_Money();
protected:
int m_roomNum;
public:
friend class Lawer;
friend void func();
int m_age;
Merchant();
void getMoney();
void getRoomNum();
void getAge();
};
Merchant::Merchant()
{
m_Money = 100;
m_roomNum = 503;
m_age = 20;
}
void Merchant::Add_Money()
{
m_Money = m_Money + 10;
}
void Merchant::getAge()
{
int m;
m = m_age;
cout << m << endl;
}
void Merchant::getMoney()
{
Add_Money();
int m;
m = m_Money;
cout << m << endl;
}
void Merchant::getRoomNum()
{
int m = m_roomNum;
cout << m << endl;
}
class Der : public Merchant
{
public:
void getpub()
{
int m = m_age;
cout << m << endl;
}
void getprotected()
{
int m = m_roomNum;
cout << m << endl;
}
/*void getpri() //private
{
int m = m_Money;
cout << m << endl;
}*/
};
class Lawer
{
public:
void test(Merchant &mem);
};
void Lawer::test(Merchant &mem)
{
Merchant& mer = mem;
mer.m_Money = mer.m_Money + 10; //friend class can access the private member
cout << endl;
}
void func() //friend function can access the private member too
{
Merchant mem;
mem.m_Money = mem.m_Money + 10;
}
int main()
{
Merchant mem;
Lawer law;
//mem.Add_Money(); //private method
mem.getAge();
law.test(mem);
mem.getMoney();
cout << mem.m_age << endl;
//cout << mem.m_Money << endl; //private
//cout << mem.m_roomNum << endl;//protected
Der der;
der.getpub();
der.getprotected();
return 0;
}
#endif //_TEST_H
类各种成员的访问权限 及 友员类和友员函数
最新推荐文章于 2021-11-27 11:51:58 发布