#include <iostream>
#include <cmath>
using namespace std;
class LiczbyZespolone;
template <class T>
class Element;
template <class T>
class List;
template <class T>
class Element
{
private:
Element <T> *next;
Element <T> *prev;
T data;
public:
Element(T val,Element *ptr1,Element *ptr2) : data(val), next(ptr1), prev(ptr2) {}
~Element() {}
};
template <class T>
class List
{
private:
Element <T> *first;
Element <T> *last;
public:
List() : first(nullptr),last(nullptr){}
~List(){}
void addEl(T *el){
}
void removeEl(float re, float im){
}
friend ostream& operator<< (ostream& os, const List<T>& el);
};
template<typename T>
ostream& operator<<(ostream& os, const List<T>& el){
Element <T> *temp = el.last;
while (temp != nullptr)
{
os<<temp->data << " ";
temp = temp->prev;
}
return os;
}
class LiczbyZespolone
{
private:
float re;
float im;
public:
LiczbyZespolone(float re_,float im_) : re(re_), im(im_){}
~LiczbyZespolone(){}
float modul() const{
return sqrt(re*re + im*im);
}
friend ostream& operator<<(ostream& os, const LiczbyZespolone& el);
};
ostream& operator<<(ostream& os, const LiczbyZespolone& el)
{
if(el.im == 0){
os << el.re;
}
os << el.modul();
return os;
}
int main()
{
List <LiczbyZespolone> l1;
int M;
cin>> M;
for(int i=0; i<M; i++){
float rzeczywista;
cin >> rzeczywista;
float urojona;
cin >> urojona;
l1.addEl(new LiczbyZespolone(rzeczywista,urojona));
}
cout << l1;
int N;
cin>>N;
for(int i=0; i<N; i++){
float rzeczywista;
cin >> rzeczywista;
float urojona;
cin >> urojona;
l1.removeEl(rzeczywista,urojona);
}
cout << l1;
return 0;
}
Hej, mam problem z wyświetlaniem l1 konkretnie cout << l1. Nie mam pojęcia jak sobie z tym poradzić. Próbowałam już dodawać <> i różne rozwiązania z stackoverflow i nic nie działa.
Błąd: https://scontent.fpoz3-1.fna.fbcdn.net/v/t1.15752-9/143505584_232479055137024_9086047841535838639_n.png?_nc_cat=108&ccb=2&_nc_sid=ae9488&_nc_ohc=6GfssQTHo9cAX-YjAuw&_nc_ht=scontent.fpoz3-1.fna&oh=74226ecbfa0e49fd1fcd18cee352b581&oe=60387E58