Kezdőoldal » Számítástechnika » Programozás » Hibaüzenet:Undefined refence...

Fyccek kérdése:

Hibaüzenet:Undefined refence to Complex operator+ (Complex) stb Mi lehet a gond?

Figyelt kérdés

#include<iostream>


class Complex{

double re, im;

public:

Complex(double r, double i) : re(r), im(i){}

Complex operator+(Complex);

Complex operator*(Complex);

};



int main(){

Complex b = Complex(1.2,5.3);

Complex c = Complex(1.3,5.4);

Complex a = Complex(0.0,0.0);


a= c.operator+(b);

return 0;

}



2017. máj. 28. 09:22
 1/8 anonim ***** válasza:
Ki mondta neked ezt a baromságot, hogy operátorokat így kell használni?
2017. máj. 28. 10:25
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
(Maga Strousptrup)
2017. máj. 28. 10:52
 3/8 anonim ***** válasza:
Átvert.
2017. máj. 28. 11:17
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Ezt inkább függvénynek kéne felfognod. Most ez olyan, mintha azt írnád, hogy:

void func();


és mainban ezt írnád:

func();


Ugyanazt a hibaüzenetet kapnád, nem definiált a függvényed.


Na most neked van egy Complex operator+(Complex); függvényed, ami osztályon kívül megírva így néz ki:


Complex Complex::operator+(Complex value)

{

//és ide írod meg, amit szeretnél, hogy csináljon.

}

2017. máj. 28. 12:40
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

Én valahogy így írnám meg amúgy:

Deklaráció:

Complex operator+(const Complex& other);


Definíció:

Complex Complex::operator+(const Complex& other)

{

return Complex(re+other.re, im+other.im);

}

2017. máj. 28. 12:50
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Oh, és ha ezt a függvényt megírod, nem kell ezt használnod:

a=c.operator+(b);

Elég lesz ez is:

a = c+b;

De ehhez is kéne írnod operator=-t, és ha már itt tartünk, akkor egy másoló konstruktor se árt, az meg:

Complex(const Complex& rhs);

2017. máj. 28. 12:54
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
utolsó: operator= és másoló nem kell, mert nincs dinamikus adattag, az alapértelmezett tökéletesen megfelel neki a célra. Ennyi erővel azt is mondhatnád, hogy írjon destruktort....
2017. máj. 28. 15:46
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

tegnap 15:46

Ebben nálad a pont, le volt blokkolva az agyam.

2017. máj. 29. 08:49
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!