Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Klassendesign: Konstruktor mit vorbelegten Parametern

Empfohlene Antworten

Hi!

Angenommen es gibt eine Klasse, die zwar keinen Standardkonstruktor mitbringt, dafür jedoch zwei Konstruktoren mit Parametern:


class Test {

    Test(const char* c = "") : m_String(c) {}

    Test(const string& s) : m_String(s) {}

    ...

};

Welcher Konstruktor wird aufgerufen, wenn nun folgendermaßen ein Objekt erstellt wird?
Test t;

Vom Bauchgefühl her würde ich sagen, dass der Konstruktor mit vorbelegtem char-Array aufgerufen und ein leerer String angelegt wird.

Mein Hirn sagt, es wird der implizit erstellte Standardkonstruktor aufgerufen - weiß aber nicht, welchen Wert dann m_String annimmt.

Wer hat nun recht? :)

Falsches Forum :floet:... Bitte verschieben, Danke!

Dein Bauch.

Ist auch klar, weil das der einzige Konstruktor ist, der keine Parameter benötigt.

Was wäre aber, wenn der Konstruktor mit der string-Referenz auch mit Standardwerten vorbelegt werden würde?

Hmm kanns hier gerade nicht nachvollziehen, aber theoretisch müsste da der Compiler schon meckern, da er das nicht eindeutig zuordnen kann.

Probiers doch einfach mal. ;)

Hmm kanns hier gerade nicht nachvollziehen, aber theoretisch müsste da der Compiler schon meckern, da er das nicht eindeutig zuordnen kann.

hmm, ja, macht er:

Warnung 1 warning C4520: 'Test': Mehrere Standardkonstruktoren angegeben

Fehler 2 error C2668: 'Test::Test': Mehrdeutiger Aufruf einer überladenen Funktion

:floet:

Cool, danke für den Einblick Leute.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.