Iterator Muster



  • Hallo ich würde gerne in C++ das Iterator Muster implementieren. In C# / Java geht das ja so:

    public interface IIterator
    {
        bool hasNext();
        object Next();
    }
    
    public class TestClass : IIterator
    {
        private List<string> liste;
        private position;
    
        public TestClass()
        {
            liste.Add("Eins");
            liste.Add("Zwei");
        }
    
        public bool hasNext()
        {
            if(Position >= liste.Count)
                return false;
            else 
                return true;
        }
    
        public object Next()
        {
            position++;
            return liste[position]
        }
    
    }
    

    Wie aber kann ich so etwas in C++ realisieren?



  • Wo liegt das Problem denn bei der Übersetzung?



  • Wenn ich das richtig sehe suchst du nach pure virtual (rein virtuellen) Funktionen.

    class InterfaceClassXYZ
    {
    ...
    pure virtual void doSomeStaff(int someParam);
    ...
    };
    


  • sry, gad erst aufgestanden

    class InterfaceClassXYZ
    {
    ...
    virtual void doSomeStaff(int someParam) = 0;
    ...
    };
    


  • Die Frage dabei ist aber wohl ob man mit statischer Polymorphie hier nicht weiter kommt als mit dynamischer.

    C++ bietet bereits ein iterator konzept in der standard library und dieses ist eigentlich schon sehr nett 😉 schau es dir mal an.


Anmelden zum Antworten