c16_11.cpp

来自「这是编程之道C-C++中的源代码,很简练,可以用于相关教学和重新熟悉C-C++时」· C++ 代码 · 共 48 行

CPP
48
字号
#include <iostream >
using namespace std;

class A 
{
	friend class B ;				//类B是类A的友元类
	int m_varA;
public:
	A(int i = 0):m_varA (i) {  }
	//存取访问函数
	void SetVar(int j=0) { m_varA =j; }
	int GetVar( ) { return m_varA; }
};

class B
{
	int m_varB;
public:
	//存取访问函数
	int GetVar( ) { return m_varB; }
	void SetVar(const A & a)		//类A的友元函数
	{
		m_varB = a.m_varA;
	}
};

class C:public B					//类C从类B派生
{
	int m_varC;
public:
	//存取访问函数
	void Set(){ m_varC = GetVar(); }
	int Get() { return m_varC; }
};

int main()
{
	A	ob_a(2002);
	C	ob_c;
	//类C中,从类B继承而来的函数SetVar( )仍然是类A的友元函数
	ob_c.SetVar(ob_a); 
	cout << " m_varB = " <<ob_c.GetVar() <<endl;
	ob_c.Set();
	cout << " m_varC = " <<ob_c.Get() <<endl;

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?