Tworzenie obiektów w pętli i zapis do listy

0

Cześć. Mam (pewnie błahy) problem. Może najpierw kawałek kodu:

class Letter {
	private:
		std::string litera;
	public:
		Letter(std::string litera) {
			this->litera = litera;
		}
};

class Line {
	private:
		std::list <Letter> letters;
		std::string linia;
		void tworzLitery() {
			for(int i=0; i<linia.size(); i++) {
				letters.push_back(new Letter(linia[i]));
			}
		}
	public:
		Line(std::string linia) {
			this->linia = linia;
			tworzLitery();
		}
};

Chodzi mi o to, żeby w pętli for w klasie Line tworzyć obiekty klasy Letter i zapisać je do listy letters. Wcześniej znalazłem takie rozwiązanie (bądź podobne) na innym forum i podobno działało, a mi niestety nie i za bardzo nie wiem dlaczego? Ktoś byłby tak dobry i mi wyjaśnił? Dziękuję :-)

2

nie znam c++ ale tak na oko - konstruktor Letter przyjmuje lancuchy a dajesz mu znaki, lista trzyma Letter a chcesz do niej wrzucic wskazniki do tej klasy...

1

Poza tym tam gdzie chcesz obiektu przez wartość każesz w peli wrzucać wskaźnik. Jeżeli już tak chcesz to:

class Letter {
    public:
        Letter(char litera) {
            this->litera = litera;
        }
    private:
        char litera;
};
 
class Line {
    public:
        Line(std::string linia) {
            this->linia = linia;
            tworzLitery();
        }
        
    private:
        std::list <Letter*> letters;
        std::string linia;
        
        void tworzLitery() {
            for(int i=0; i<linia.size(); i++) {
                letters.push_back(new Letter(linia[i]));
            }
        }
};
3

Ja zadam inne pytanie.

Po co takie cos chcesz robic? Bo w tej chwili wynajdujesz kolo na nowo.
Robisz niepotrzebny wrapper na char
Robisz niepotrzebny wrapper na string

0

Dziękuję za odpowiedzi :-) Rzeczywiście głupie błędy zrobiłem. A co do pytania fasadin - Do napisania mam prosty, konsolowy edytor tekstowy na zaliczenie z Programowania Obiektowego. Zdaję sobie sprawę, że to można napisać o wiele lepiej i szybciej, niestety mam do spełnienia wiele wymogów jak np. ilość klas, czy użycie takich a nie innych rozwiązań... Za to jeśli ktoś miałby dla mnie jakieś sugestie to bardzo chętnie przeczytam :-) Bo przyznam szczerze, że 'nie leży' mi ten projekt.

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