Avatar ·

Kann eine Struktur (struct) einen Konstruktor in C++ haben?

Hallo! Ich habe gerade angefangen, C++ zu lernen, und bin auf ein Missverständnis gestoßen. In der Sprache C bin ich daran gewöhnt, dass struct nur ein Datensatz ist und keine Methoden haben kann. Aber in C++ sehe ich, dass struct anscheinend einer Klasse ähnelt, aber standardmäßig öffentliche Member hat. Meine Frage: Kann eine Struktur einen Konstruktor haben? Wenn ja, wie funktioniert das? Ich habe versucht, diesen Code zu schreiben: ```cpp #include using namespace std; struct Point { int x; int y; // Versuch, einen Konstruktor hinzuzufügen Point(int a, int b) { x = a; y = b; } }; int main() { Point p1(10, 20); // Fehler? Oder funktioniert es? cout << p1.x << " " << p1.y; return 0; } ``` Aber ich bin mir nicht sicher, ob das richtig ist. Der Compiler scheint sich nicht zu beschweren, aber in einigen Büchern steht, dass struct nur Daten enthält. Bitte erklären Sie, ob man Konstruktoren in Strukturen verwenden kann, und wenn ja, wie unterscheidet sich das von Konstruktoren in Klassen? Gibt es irgendwelche Fallstricke oder Einschränkungen?