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

  • Автор темы nikit0s
  • Дата начала
N

nikit0s

#1
//организовать перегрузку бинарной операции < чтобы 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; 
}