[c++]友元函数

来源:互联网 发布:网络交友的利与弊观点 编辑:程序博客网 时间:2024/04/28 11:54

其中有2个类:一个是深圳类shen_stock,一个是上海类shang_stock,类中有3个私有成员:普通股票个数general,ST股票个数st和PT股票个数pt,每个类分别有自己的友元函数来计算并显示深圳或上海的股票总数(3项的和)。两个类还公用一个函数count(),用来计算深圳和上海总共有多少股票并输出

#include<iostream>using namespace std;class shen_stock{    class shang_stock;private:    int general;    int st;    int pt; public:    shen_stock(int g,int s,int p)    {        general = g;        st = s;        pt = p;    }    int get_g()    {return general;}    int get_s()    {return st;}    int get_p()    {return pt;}    friend void add_shen(shen_stock & s);    friend void count(shen_stock & s,shang_stock &ss);};class shang_stock{    class shen_stock;private:        int general;    int st;    int pt;public:    shang_stock(int g,int s, int p)    {        general = g;        st = s;        pt = p;    }    int get_g()    {return general;}    int get_s()    {return st;}    int get_p()    {return pt;}    friend void add_shang(shang_stock &s);    friend void count(shen_stock & s,shang_stock &ss);    };//void add_shen(shen_stock & s){    cout<<"shen_stock is "<<s.get_g() + s.get_p() + s.get_s()<<endl;}//void add_shang(shang_stock &s){    cout<<"shang_stock is "<<s.general + s.st + s.pt<<endl;}//void count(shen_stock &s,shang_stock &ss){    //s.general +s.pt + s.st + ss.general + ss.pt + ss.st;私有成员要通过共有成员访问    cout<<"shang_stock and shen_stock is "<<s.get_g()+s.get_p()+s.get_s()+ss.get_g()+ss.get_p()+ss.get_s()<<endl;}////int main(){    void count(shen_stock &s,shang_stock &ss);    shang_stock s1(1600,20,10);    shen_stock s2(1500,15,8);    add_shang(s1);    add_shen(s2);    count(s2,s1);//注意别写反了    return 0;}


注意:

1 定义在哪个类的内部,就可用该类内的私有成员(类内)

2 格式为函数名前加friend关键字

3 不需要作用域表示符,无this指针

1 0
原创粉丝点击