Navigation

    cpp-logo

    C++ Community

    • Registrieren
    • Anmelden
    • Suche
    • Kategorien
    • Aktuell
    • Tags
    • Beliebt
    • Gruppen
    1. Übersicht
    2. Beliebt
    Melde dich an, um einen Beitrag zu erstellen
    • Alle Kategorien
    • Ankündigungen
    •      Die Artikel
    • C++ (alle ISO-Standards)
    •      MFC
    •      VCL (C++ Builder)
    •      C++/CLI mit .NET
    •      Andere GUIs - Qt, GTK+, wxWidgets
    • Sonstige Programmiersprachen
    •      C (alle ISO-Standards)
    •      C# und .NET
    •      Java
    •      Assembler
    •      Webzeugs
    • Betriebssysteme
    •      WinAPI
    •      Linux/Unix
    •      Projekt: OS-Development
    •      DOS und Win32-Konsole (nur Lesen)
    • Weitere Fachbereiche
    •      Mathematik und Physik
    •      Spiele-/Grafikprogrammierung
    •      Datenbanken
    •      Compiler- und IDE-Forum
    •      Projekte
    • Jenseits der Programmierung
    •      Beruf und Ausbildung
    •      Stellenangebote
    •      Themen rund um die IT
    •      Gaming-Corner
    • Forentechnik
    • Archiv
    •      Das C++ Magazin
    •          Die Redaktion
    •          Die Autoren
    •          Allgemeines zum Magazin
    •          Archiv
    •      Organisation des Forumtreffens
    •      FAQs - Frequently Asked Questions
    •          FAQ - C (C89, C99 und C11)
    •          FAQ - Assembler
    •          FAQ - C++ (auch C++0x, C++11)
    •          FAQ - C++/CLI
    •          FAQ - C++ Builder (VCL/CLX)
    •          FAQ - C# und .NET
    •          FAQ - Compiler & IDEs
    •          FAQ - Datenbanken
    •          FAQ - DOS und Win32-Konsole
    •          FAQ - Grafik-/Spieleprogrammierung
    •          FAQ - GUIs
    •          FAQ - Java
    •          FAQ - Linux/Unix
    •          FAQ - Mathematik und Physik
    •          FAQ - MFC
    •          FAQ - Rund um die Programmierung
    •          FAQ - Sonstiges
    •          FAQ - Webzeugs
    •          FAQ - WinAPI
    •          FAQ - Forentechnik
    • Alle Themen
    • Neue Themen
    • Beobachtete Themen
    • Unbeantwortete Themen
    • Gesamter Zeitraum
    • Tag
    • Woche
    • Monat

    • M

      pure virtual clone mit shared_ptr?
      C++ (alle ISO-Standards) • • mael15  

      10
      0
      Stimmen
      10
      Beiträge
      314
      Aufrufe

      L

      Sorry, ich wollte nicht abwertend sein. Ich dachte, das sei umgangssprachlich neutral.
    • L

      Wie am besten Java in C++ Programm umwandeln?
      C++ (alle ISO-Standards) • • Lennox  

      3
      0
      Stimmen
      3
      Beiträge
      44
      Aufrufe

      L

      @Schlangenmensch Ja gut, ich versuche es erst selbst... aber erwartet keine Wunder von mir... Die FSM (also das argument parsing...) ist im Prinzip so, dass eine beliebige Reihenfolge von target1 und/oder sleep1 erlaubt ist, aber die a/b-Auflistung immer danach folgen muss... Beispiel: program.exe target=1.1.1.1 sleep=2000 a=1 b=3 a=1 Oder auch: program.exe a=1 program.exe a=1 b=3 a=1 program.exe sleep=2000 a=1 b=3 a=1 program.exe target=1.1.1.1 a=1 b=3 a=1 program.exe sleep=2000 target=1.1.1.1 a=1 b=3 a=1 Jetzt sollte es deutlich sein. Ungültig wäre z. B.: program.exe target=1.1.1.1 Muster: program.exe (sleep=<int_ms>) (target=<ip/host>) [a/b]=<int> ... Ich war mir erst nicht sicher, ob man dafür wirklich eine FSM braucht, aber offenbar genügt ein einfacher https://de.wikipedia.org/wiki/Behavior_Tree für die Verarbeitung der Argumente und das Starten der Runnables nicht, oder?
    • A

      Bewertungsmanagement-Videosystem (in C++ und Qt programmiert)
      Projekte • • anfri  

      3
      0
      Stimmen
      3
      Beiträge
      39
      Aufrufe

      Verstärktes Mitteilungsbedürfnis? Was sollen wir mit den o.g. Informationen anfangen?
    • const/non-const Funktionspärchen
      C++ (alle ISO-Standards) • • DocShoe  

      1
      0
      Stimmen
      1
      Beiträge
      3
      Aufrufe

      Hallo, ich kann mir bei const/non-const Funktionspärchen nie merken, welcher cast gültig ist. Ich möchte zwei von der Funktionalität identische Funktionen durch eine Funktion implementieren, eine const- und eine non-const-Variante. Da gibt's jetzt zwei Möglichkeiten: Implementierung in der const-Funktion In der non-const Funktion wird nach const gecastet, die const-Funktion aufgerufen und das Ergebnis nach non-const gecastet. Implementierung in der non-const-Funktion In der const Funktion wird nach non-const gecastet, die non-const-Funktion aufgerufen und das Ergebnis nach const gecastet. Nach meinem Verständnis sollte Variante 1 die richtige sein, ich darf ein non-const Objekt nach const casten. Weil ich an dieser Stelle weiß, dass das Objekt non-const ist, darf ich es auch wieder von const nach non-const zurückcasten. Variante 2 sollte falsch sein, da die non-const Funktion das Objekt verändern könnte, und das darf bei einem const Objekt nicht passieren. Also ist der cast von const nach non-const nicht erlaubt. Oder darf ich das hier brechen, weil ich weiß, dass auch die non-const Variante das Objekt nicht verändert? Im konkreten Beispiel funktioniert das für iteratoren nicht, ein iterator kann zwar in einen const_iterator konvertiert werden, aber nicht umgekehrt. Für die Zeigervariante funktioniert das. Was ist also die korrekte Lösung für iteratoren? #include <vector> #include <algorithm> #include <iostream> using namespace std; struct Test { std::vector<int> v; using iterator = std::vector<int>::iterator; using const_iterator = std::vector<int>::const_iterator; iterator find( int val ) { return std::find( v.begin(), v.end(), val ); } const_iterator find( int val ) const { return const_cast<Test*>( this )->find( val ); } int* find2( int val ) { return const_cast<int*>( const_cast<Test const*>( this )->find2( val )); } int const* find2( int val ) const { auto pos = std::find( v.begin(), v.end(), val ); return pos == v.end() ? nullptr : &(*pos); } }; int main() { Test c; Test const n; c.find( 13 ); n.find( 13 ); c.find2( 13 ); n.find2( 13 ); return 0; }```