Hibaüzenet:Undefined refence to Complex operator+ (Complex) stb Mi lehet a gond?
#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;
}
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.
}
É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);
}
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);
tegnap 15:46
Ebben nálad a pont, le volt blokkolva az agyam.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!