Προς το περιεχόμενο

C++ complex template


xristos05

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημερα θα ηθελα μια βοηθεια σχετικα με 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 ----------

 

με τα πολλα το βρηκα τζαπα ανοιξα θεμα αν και δε μπορω να πω οτι δε με παιδεψε :P ενα <Τ> στη συναρτηση Complex μου ειχε ξεφυγει

Δημοσ.

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 :-)

Δημοσ.

>
#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;
}

 

Κάτι τέτοιο;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...