Перегрузка бинарной операции <

Тема в разделе "Общие вопросы по С и С++", создана пользователем nikit0s, 10 июн 2010.

  1. nikit0s

    nikit0s Гость

    //организовать перегрузку бинарной операции < чтобы t<k заменяло t->key=k (в функции void fun(int k))

    Код (C++):
    #include <iostream.h>
    #include <conio.h>
    struct Node
    {
    int key;
    Node *link;
    };
    typedef Node *NodePtr;
    class List
    {
    public:

    int k;
    List(void);
    ~List();
    void Out(void);
    void fun(int k);

    void operator< (int k)
    {
    int q;
    t->key=k;
    }

    private:

    int n,q;
    NodePtr l,t,p;
    NodePtr Search(NodePtr p,NodePtr t);
    NodePtr MakeList();
    void OutList(NodePtr head);
    };

    List::List (void)
    {
    cout<<"‚ўҐ¤ЁвҐ бЇЁб®Є: ";
    l=MakeList();
    }

    List::~List()
    {
    delete p;
    delete l;
    }

    void main()
    {
    int k;
    cout<<"‚ўҐ¤ЁвҐ зЁб«®: "<<endl;
    cin>>k;
    List s;
    s.fun(k);
    s.Out();
    getch();
    clrscr();
    }
    NodePtr List::MakeList()
    {
    NodePtr p,head;
    int key;
    p=new Node;
    cin>>p->key;
    head=p;
    while (cin>>key)
    {
    p->link=new Node;
    p=p->link;
    p->key=key;
    }
    p->link = NULL;
    return head;
    }
    void List::OutList(NodePtr head)
    {
    if (head !=NULL)
    {
    cout<<head->key<<" ";
    OutList(head->link);
    }
    }
    NodePtr List::Search(NodePtr p,NodePtr t)
    {
    if (p)
    {
    if ((p->key)>0)
    t=p;
    t=Search(p->link,t);
    }
    return t;
    }

    void List::Out()
    {
    OutList(l);
    }

    void List::fun(int k)            
    {
    t=Search(l,t);
    t->key=k;
    }
     
Загрузка...

Поделиться этой страницей