433 Stimmen

Was hat es mit dieser seltsamen Doppelpunkt-Syntax (" : ") im Konstruktor auf sich?

Kürzlich habe ich ein Beispiel wie das folgende gesehen:

#include <iostream>

class Foo {
public:
  int bar;
  Foo(int num): bar(num) {};
};

int main(void) {
  std::cout << Foo(42).bar << std::endl;
  return 0;
}

Was bedeutet diese seltsame : bar(num) meinen? Es scheint irgendwie die Mitgliedsvariable zu initialisieren, aber ich habe diese Syntax noch nie gesehen. Es sieht aus wie ein Funktions-/Konstruktoraufruf, aber für eine int ? Das ergibt für mich keinen Sinn. Vielleicht kann mich jemand aufklären. Und, nebenbei bemerkt, gibt es noch andere esoterische Sprachfunktionen wie diese, die man nie in einem normalen C++-Buch findet?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X