C++ 面向对象编程 友元类成员函数

来源:互联网 发布:学编程看什么书 编辑:程序博客网 时间:2024/06/05 16:01

                     C++ 面向对象编程

      类可以声明为另一个类的友元  。。。  成为友元类 
    
       也即是说 如果B是 A 但是友元类, 则 B类所有成员函数都是A 类的友元函数    

       例如下面要实现一个栈的输入和 输出 , 要做的 就是需要两个类, 一个是节点类 , 一个是栈类  栈类 中有两个功能 一个push 一个 pop 函数
 
        下面看代码:

#include<iostream>using namespace std;class Node{   int data ;   Node *next;   //指向下一个节点   public :       Node(int d )       {//构造函数           data = d;           next = NULL;       }       friend class stack ; //友元类};class stack{    Node *top;    public :        //构造函数        stack()        {//初始化栈为空          top = NULL;        }        void push(int d )        {            Node *p = new Node(d);    //新建一个节点            if(top != NULL)            {                p->next = top;            }            top = p;        }        int  pop(int &c)        {//删除栈定文件            Node *p = top ;            if(top != NULL)            {                c = p->data;                top = top->next;                delete p;                return 1;            }            else               return 0;        }};int main(){  //友元类的成员函数可以直接访问对象名直接访问到隐藏的数据    stack s;    int c;    s.push(1);    s.push(2);    s.push(3);    s.push(4);    cout<<"出栈顺序:"<<endl;    while(s.pop(c))    {        cout<<c<<" ";    }    cout<<endl;    return 0;}



 
0 0