⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 完美c++疑难解答-友元.txt

📁 完美C++疑难解答 详细的讲解了C/C++编程过程中的一些难点和容易混淆的地方!值得收藏反复研究。
💻 TXT
字号:
1.友元可以伪装成成员函数...为了访问数据成员.
#include "stdafx.h"

class Fish
{
public:	
    void Setfloat1( Fish &fish1);
	friend void Setfloat3(Fish &fish3);
	  void Setfloat4(int CCDeath);
private:
	int m_s;
};

void Fish::Setfloat1(Fish &fish1)
{
	fish1.m_s=100;
	cout<<fish1.m_s<<endl;
}
void Setfloat2(Fish &fish2)//肯定失败...
{
//	fish2.m_s=100;
//	cout<<fish2.m_s<<endl;
}
void Setfloat3(Fish &fish3)//Setfoat只要是Fish成员函数或友元函数就对数据成员进行操控...
{
	fish3.m_s=100;
	cout<<fish3.m_s<<endl;
}
void Fish::Setfloat4(int CCDeath)
{
	m_s=CCDeath;
	cout<<m_s<<endl;
}
void main()
{
	Fish fish;	
	fish.Setfloat1(fish);
//	Setfloat2(fish);
	Setfloat3(fish);	
	fish.Setfloat4(5);
}
2.具有相同友元的了两个类....
#include "stdafx.h"
//Show(): 显示日期--class Day  ;  显示时间  class Time

class Time;//记得
class Day
{
public:
	Day(int year,int month,int day);
	friend void  ShowDayTime(const Day &day,const Time &time);
private:
	int m_year,m_month,m_day;
};
Day::Day(int year,int month,int day)
{
	m_year=year;
	m_month=month;
	m_day=day;
}
class Time
{
public:
	Time(int hour,int min,int second);
	friend void  ShowDayTime(const Day &day,const Time &time);
private:
	int m_hour,m_min,m_second;
};
Time::Time(int hour,int min,int second)
{
	m_hour=hour;
	m_min=min;
	m_second=second;
}
void  ShowDayTime(const Day &day,const Time &time)
{
	cout<<"日期:"<<day.m_year<<"-"<<day.m_month<<"-"<<day.m_day<<endl;
	cout<<"时间:"<<time.m_hour<<"-"<<time.m_min<<"-"<<time.m_second<<endl;
}
void main()
{
	Time wo(15,44,56);
	Day  ni(2007,11,9);
	ShowDayTime(ni,wo);
}
3.类的成员函数可以做另外一个类友元......
#include "stdafx.h"
//Show(): 显示日期--class Day  ;  显示时间  class Time

class Time;//记得
class Day
{
public:
	Day(int year,int month,int day);
	void  ShowDayTime(const Day &day,const Time &time);
private:
	int m_year,m_month,m_day;
};
Day::Day(int year,int month,int day)
{
	m_year=year;
	m_month=month;
	m_day=day;
}
class Time
{
public:
	Time(int hour,int min,int second);
	friend void  Day::ShowDayTime(const Day &day,const Time &time);
private:
	int m_hour,m_min,m_second;
};
Time::Time(int hour,int min,int second)
{
	m_hour=hour;
	m_min=min;
	m_second=second;
}
void  Day::ShowDayTime(const Day &day,const Time &time)
{
	cout<<"日期:"<<day.m_year<<"-"<<day.m_month<<"-"<<day.m_day<<endl;
	cout<<"时间:"<<time.m_hour<<"-"<<time.m_min<<"-"<<time.m_second<<endl;
}
void main()
{
	Time wo(15,44,56);
	Day  ni(2007,11,9);
	ni.ShowDayTime(ni,wo);
}

⌨️ 快捷键说明

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