Forum » Programiranje » [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:
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č.
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pomoč pri programiranju z javoOddelek: Programiranje | 3570 (2497) | milc |
⊘ | [C#]naloga iz metod!Oddelek: Programiranje | 1674 (1507) | Ziga Dolhar |
» | [C#] pomoc pri vpisu elementov v listBoxOddelek: Programiranje | 1306 (1221) | keworkian |
» | [C++] urejanje nizov po velikostiOddelek: Programiranje | 2284 (2065) | Matako |
» | [JAVA] rekurzivni izpis seznama z kazalciOddelek: Programiranje | 1786 (1544) | l0g1t3ch |