» »

[C++]Overloading operatorjev

[C++]Overloading operatorjev

Xshade ::

Lep pozdrav vsem!
Imam sledeči problem in sicer navodilo naloge je : V poljubnem razredu preobloži operator %, ki bo primerjal dve števili.
Do sedaj mi je uspelo narediti nekako takole:
#include<iostream> 
using namespace std;
class over
{
   private:
           int a;
           int b;
   public:
          over(){};
          ~over(){};
          over operator% (over);
          void vpis(int,int);
          void izpis();
     
          
};
void over::vpis(int prvo,int drugo)
{
     a=prvo;
     b=drugo;
}


over over:: operator%(over lol)
{
     over vecji;
     if(a>b)
     {
      vecji.a=prvo;
      }
     else{
    vecji.b=drugo;}
    return vecji;
}
void over::izpis()
{
     cout << " Vecji je:"<< vecji;
     }
int main()
{
    over lol1,lol2,lol3;
    lol1.vpis(1,2);
    lol2.vpis(5,4);
    lol3=lol1%lol2;
    lol3.izpis();
    system("pause");
    return 0;
}

Največje probleme mi dela znotraj operatorja, ker mi ni ravno jasno, kako je glede te inicializacije v operatorju, oz. postavljanju pogoja in podobno, zato bi bil zelo hvaležen, če bi kdo lahko malo razložil, morda priložil kak link ali pa tudi popravil kodo. Take probleme imam ker edini primer katerega smo predelali in katerega sem našel na internetu je za računanje imaginarnih števil, zaradi tega me je to tudi toliko zmedlo.

Hvala vsem že v naprej za pomoč.

xordie ::

npr.:

#include <iostream>

class bigger
{
	friend std::ostream& operator<<(std::ostream &o,const bigger &in);
	friend bigger operator%(const bigger &left, const bigger &right);
public:
	bigger();
	~bigger();
	bigger& operator=(const int _n);


private:
	int n;
};

bigger::bigger()
{
	n = 0;
}

bigger::~bigger()
{
}

bigger& bigger::operator=(const int _n)
{
	this->n = _n;
	return *this;
}

std::ostream& operator<<(std::ostream &o, const bigger &in)
{
	o << in.n;
	return o;
}

bigger operator%(const bigger &left, const bigger &right)
{
	return ( left.n > right.n ) ? left : right;
}

int main(int argc, char* argv[] )
{
	bigger a;
	a = 3;
	bigger b;
	b = 1;
	std::cout << a % b;
	return 0;
}
x


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč pri programiranju z javo

Oddelek: Programiranje
203570 (2497) milc

[C#]naloga iz metod!

Oddelek: Programiranje
81674 (1507) Ziga Dolhar
»

[C#] pomoc pri vpisu elementov v listBox

Oddelek: Programiranje
101306 (1221) keworkian
»

[C++] urejanje nizov po velikosti

Oddelek: Programiranje
82284 (2065) Matako
»

[JAVA] rekurzivni izpis seznama z kazalci

Oddelek: Programiranje
151786 (1544) l0g1t3ch

Več podobnih tem