xristos05 Δημοσ. 3 Σεπτεμβρίου 2010 Δημοσ. 3 Σεπτεμβρίου 2010 Καλημερα θα ηθελα μια βοηθεια σχετικα με c++ εφτιαξα ενα προγραμμα που κανει προσθεση μιγαδικων αριθμων (πραγματικου, φανταστικου), το προγραμμα δούλευε μεχρι που προσπαθησα να το κανω με template > template<class T> class Complex { double re, im; public: Complex() { re=0.0; im=0.0; } Complex (double _re, double _im) { re=_re; im=_im; } Complex<T> operator+ (Complex<T> z2); void Display() { cout<<re<<" + "<< im<<"i \n"; } }; template<class T> Complex Complex<T>::operator+ (Complex<T> z2) { Complex temp; temp.re = re + z2.re; temp.im = im + z2.im; return(temp); } int main() { Complex <double> x(5.0, 12.0); Complex <double> y(-1.0, 4.0); Complex <double> z= x+y; z.Display(); } αυτο ειναι το προγραμμα και μου βγαζει το error στην εντολη Complex Complex<T>::operator+ (Complex<T> z2) "expected constructor, destructor, or type conversion before Complex" & "expected ; before Complex" προσπαθω ποση ωρα να δω τι φταιει και δεν το εχω καταφερει ...οποτε οποιος μπορει ας βοηθεισει Ευχαριστω πολυ ---------- Προσθήκη στις 14:36 ---------- Προηγούμενο μήνυμα στις 14:20 ---------- με τα πολλα το βρηκα τζαπα ανοιξα θεμα αν και δε μπορω να πω οτι δε με παιδεψε ενα <Τ> στη συναρτηση Complex μου ειχε ξεφυγει
Evgenios1 Δημοσ. 3 Σεπτεμβρίου 2010 Δημοσ. 3 Σεπτεμβρίου 2010 btw μηπως θες κατι τετοιο; >template<class T> class Complex { [color="Red"]T[/color] re, im; public: Complex<T>() { re=0.0; im=0.0; } Complex<T> (T _re, T _im) { re=_re; im=_im; } Complex<T> operator+ (Complex<T> &z2); void Display() { cout<<re<<" + "<< im<<"i \n"; } }; template<class T> Complex<T> Complex<T>::operator+ (Complex<T> &z2) { Complex temp; temp.re = re + z2.re; temp.im = im + z2.im; return(temp); } Αλλιως δεν βλεπω λογο για template
xristos05 Δημοσ. 3 Σεπτεμβρίου 2010 Μέλος Δημοσ. 3 Σεπτεμβρίου 2010 ναι σωστο δε πρεπει να ειναι double
dop Δημοσ. 4 Σεπτεμβρίου 2010 Δημοσ. 4 Σεπτεμβρίου 2010 > #include <iostream> template<class T> class Complex { T re, im; public: Complex() : re(), im() { } Complex (const T& _re, const T& _im) : re(_re), im(_im) { } Complex operator+(const Complex& other) const; void Display() { std::cout << re << " + " << im << "i \n"; } }; template<class T> Complex<T> Complex<T>::operator+(const Complex<T>& other) const { return Complex<T>(re+other.re, im+other.im); } int main() { Complex<double> x(5.0, 12.0); Complex<double> y(-1.0, 4.0); Complex<double> z= x+y; z.Display(); return 0; } Κάτι τέτοιο;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.