//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
using namespace std;
class Internet
{
public:
Internet(char *name,char *address)
{
strcpy(Internet::name,name);
strcpy(Internet::address,address);
}
friend void ShowN(Internet &obj);//友元函數的聲明
public:
char name[20];
char address[20];
};
void ShowN(Internet &obj)//函數定義,不能寫成,void Internet::ShowN(Internet &obj)
{
cout<<obj.name<<endl;
}
void main()
{
Internet a("中國軟件開發實驗室","www.cndev-lab.com");
ShowN(a);
cin.get();
}
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
using namespace std;
class Country;
class Internet
{
public:
Internet(char *name,char *address)
{
strcpy(Internet::name,name);
strcpy(Internet::address,address);
}
friend void ShowN(Internet &obj,Country &cn);//注重這里
public:
char name[20];
char address[20];
};
class Country
{
public:
Country()
{
strcpy(cname,"中國");
}
friend void ShowN(Internet &obj,Country &cn);//注重這里
PRotected:
char cname[30];
};
void ShowN(Internet &obj,Country &cn)
{
cout<<cn.cname<<""<<obj.name<<endl;
}
void main()
{
Internet a("中國軟件開發實驗室","www.cndev-lab.com");
Country b;
ShowN(a,b);
cin.get();
}
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
using namespace std;
class Internet;
class Country
{
public:
Country()
{
strcpy(cname,"中國");
}
void Editurl(Internet &temp);//成員函數的聲明
protected:
char cname[30];
};
class Internet
{
public:
Internet(char *name,char *address)
{
strcpy(Internet::name,name);
strcpy(Internet::address,address);
}
friend void Country::Editurl(Internet &temp);//友元函數的聲明
protected:
char name[20];
char address[20];
};
void Country::Editurl(Internet &temp)//成員函數的外部定義
{
strcpy(temp.address,"edu.cndev-lab.com");
cout<<temp.name<<""<<temp.address<<endl;
}
void main()
{
Internet a("中國軟件開發實驗室","www.cndev-lab.com");
Country b;
b.Editurl(a);
cin.get();
}
整個類也可以是另一個類的友元,該友元也可以稱做為友類。友類的每個成員函數都可以訪問另一個類的所有成員。
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
using namespace std;
class Internet;
class Country
{
public:
Country()
{
strcpy(cname,"中國");
}
friend class Internet;//友類的聲明
protected:
char cname[30];
};
class Internet
{
public:
Internet(char *name,char *address)
{
strcpy(Internet::name,name);
strcpy(Internet::address,address);
}
void Editcname(Country &temp);
protected:
char name[20];
char address[20];
};
void Internet::Editcname(Country &temp)
{
strcpy(temp.cname,"中華人民共和國");
}
void main()
{
Internet a("中國軟件開發實驗室","www.cndev-lab.com");
Country b;
a.Editcname(b);
cin.get();
}
新聞熱點
疑難解答