(C++ Anfänger) Möchte im Prinzip eine Software entwickeln und habe einige Fragen?

Hey,

ich möchte ein Programm in C++ erstellen. Es soll eine moderne Oberfläche haben und mir ist wichtig, das es auf verschiedenen Betriebssystemen laufen soll, nicht nur auf Windows. Ich bin ein Anfänger und kann gerade mal die Grundlagen von C++, setze mir jedoch hohe Ziele. Ich habe bis jetzt mit der IDE Visual Studio programmiert, sollte ich zu Qt o.ä wechseln? Ich habe gelesen das es mit anderen IDE's einfacher sei GUI's zu erstellen, weiß jedoch nicht ob das stimmt. Ich möchte eine Software entwickeln, die modern und schnell ist, sowie auf anderen Betriebssystemen läuft. Damit es auf anderen Betriebssystem läuft muss ich es neu kompilieren richtig? Muss ich den Code ändern, damit es auf anderen Betriebssystemen läuft? Was für ein Projekt sollte ich erstellen? Und was für Bibliotheken bzw. API's werden verwendet wenn ich ein Projekt erstelle(Kann ich Bibliotheken oder API's einfach downloaden und damit programmieren)? Habe ich bei Visual Studio bisher immer die Windows API benutzt? Was ist Windows Runtime C++ und was ist C++/CLI? DirectX ist nur für 3D Anwendungen da richtig? Habe viel Zeit, ich würde jeden Tag mindestens 2 Stunden lernen. Ich weiß ich kann auch Google für wahrscheinlich all diese Fragen verwenden, wenn du nicht antworten möchtest, lass es einfach :)

Lg

PC, Computer, Software, Technik, programmieren, cplusplus, CPP, Informatik, programmieren lernen, Technologie, Visual Studio, Spiele und Gaming
2 Antworten
C++: Warum erfolgt diese Ausgabe?
#include <iostream>

using std::cout;

class Baum {
  public:
    Baum() {
      cout << "Baumkonstruktor\n";
      alter = 10;
    }

    int getAlter() {
      return alter;
    }

    protected:
      // Methode 2: Zugriff verändert, um in Fichte darauf zugreifen zu können
      int alter;
};

class Fichte : public Baum {
  public:
    Fichte() : Fichte(10) {
      cout << "Fichtenkonstruktor\n";
      cout << "Alter der Fichte ist: " << alter << " und Nadeln: " << anzahlNadeln << "\n";
    }

    // Copy-Konstruktor:
    Fichte(Fichte &other) {
      alter = other.alter;
      anzahlNadeln = other.anzahlNadeln;
      cout << "Copy-Konstruktor ist gelaufen\n";
    }

    ~Fichte() {
      cout << "Die Fichte geht\n";
    }

    // Normale Funktion, die als Parameter eine Fichte nimmt:
    // Fichte altern(Fichte eingang) { -> führt zu zweimal Copy-Konstruktor
    Fichte& altern(Fichte &eingang) {  // -> nutzt Referenzen und so genannten Move-Semantics
      //eingang.alter = eingang.alter * 2; identisch mit unterer Zeile
      eingang.alter = 2;
      return eingang;
    }

    Fichte(int nadeln) {
      anzahlNadeln = nadeln;
    }

    long AlterMalNadeln() {
      return anzahlNadeln * alter;
    }

  private:
    long anzahlNadeln;
};

int main() {
  Baum B;
  Fichte F;

  cout << "Alter Baum: " << B.getAlter() << "\n";
  cout << "Fichte: AlterMalAnzahlNadeln: " << F.AlterMalNadeln() << " und alter: " << F.getAlter() << "\n";

  {
    Fichte FI(10);
  }            ///< Destruktor-Aufruf erzwingen.

  Fichte Fich(F);
  cout << "Jetzt altert die Fichte F\n";

  Fich.altern(F); // call by value->Copy-Konstruktor da ursprünglich keine Referenz verwendet wurde
  cout << "Fichte Fich alterXNadeln: " << Fich.AlterMalNadeln() << "\n";
  system("PAUSE");
  return 0;
}

Das ist der Code, mit Kommentaren. Ich verstehe allerdings nicht weshalb die Ausgabe so aussieht wie sie aussieht:

Baumkonstruktor
Baumkonstruktor
Fichtenkonstruktor
Alter der Fichte ist: 10 und Nadeln: 10
Alter Baum: 10
 Fichte: AlterMalAnzahlNadeln: 100 und alter: 10
Baumkonstruktor
Die Fichte geht
Baumkonstruktor
Copy-Konstruktor ist gelaufen
Jetzt altert die Fichte F
Fichte Fich alterXNadeln: 100

Ich hätte folgendes erwartet:

Baumkonstruktor
Alter Baum: 10
Fichtenkonstruktor
Alter der Fichte ist: 10 und Nadeln: 10
 Fichte: AlterMalAnzahlNadeln: 100 und alter: 10
Die Fichte geht
Copy-Konstruktor ist gelaufen
Jetzt altert die Fichte F
Fichte Fich alterXNadeln: 100

So hatte ich die Ausgabe erwartet. Ich bin einfach den Code entlang gegangen ...

PC, Computer, Schule, Programm, programmieren, Programmierung, cplusplus, CPP, Informatik, Programmiersprache
2 Antworten

Meistgelesene Fragen zum Thema Cplusplus

exe-datei in apk-datei umwandeln (c++)

4 Antworten

Kostenloses programm zum programmieren mit c oder c++?

4 Antworten

C++ Unterschied Copy-Konstruktor vs. Zuweisungsoperator?

2 Antworten

C++ wo finde ich gute Übungsaufgaben mit Lösungen?

4 Antworten

VIsual studio c++ Das System kann die angegebene Datei nicht finden

3 Antworten

C++ Error: Der Ausdruck muss ein änderbarer L-Value sein

2 Antworten

unterschied zwischen größer und größer gleich

5 Antworten

was bedeutet using namespace std;? (C++)

4 Antworten

c++ abfrage, wenn die eingabe ein Buchstabe ist

7 Antworten

Cplusplus - Neue und gute Antworten