?? 完美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 + -