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.