Dodawnie obiektów do kontenera przez konsole

0

Witam,
Mam pewien problem. Otóż mam za zadania stworzyć kontener z interaktywną aplikacją, przez która będzie można dodawać do kontenera elementy dowolnego typu. Wszystko jest jasne, gdy działam na typach wbudowanych np. int, char. Pytanie jest jak przez konsole dodawać obiekty typów zadeklarowanych. Czy trzeba stworzyć specjalny konstruktor, czy jeszcze jest inne rozwiązanie ? Bardzo proszę o pomoc i z góry dziękuje :)

0

Przeciążyć dla twojego typu: istream &operator>>(istream &s,TwojTyp &T)

0

To już wystarczy ? A gdy chcę podać parametry tworzonego obiektu ?

0
struct punkt { double x,y; };
istream &operator>>(istream &s,punkt &p) { return s>>p.x>>p.y; }

punkt p;
cin>>p;
0

Już mam, wszytko działa :) A mam jeszcze takie pytanie ? Gdy dodaje obiekt do kontenera to tworzą się dwa obiekty i muszę dwa razy podawać jego parametry, jak rozwiązać ten problem ?

0

Usunąć wczytywanie z konstruktora i zrobić tak jak napisałem wyżej.

0

Twoja metodą obiekt tworzy się jeszcze przed dodaniem go do kontenera.

0

A jak chcesz wczytać dane do składowych obiektu przed stworzeniem obiektu? Tworzysz obiekt (z wartościami domyślnymi), wczytujesz przez strumień poszczególne składowe, koniec.

0

Rozumiem, a czy da się w tym operatorze umieścić tekst by użytkownik wiedział co wpisuje ??

0

A czy jest możliwa kontrola wprowadzanych danych tzn. obsługa wyjątków odnośnie tego operator ??

0
struct punkt { double x,y; };
istream &operator>>(istream &s,punkt &p) { return s>>p.x>>p.y; }
 
punkt p;
if(cin>>p) // wczytano poprawnie
  {
  }
else
  {
   cin.clear();
   cout<<"Blad"<<endl;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1