Blaubart: unbekannte c++ syntax?

Beitrag lesen

Tach.

ist das c++ oder was spezifisches?

Ja, das ist eine Besonderheit von C++.

class laminarSquareInletFvPatchVectorField : public fixedValueFvPatchVectorField { }

Daß das angibt, von wem laminarSquareInletFvPatchVectorField erbt, hast Du ja schon herausgefunden ...

laminarSquareInletFvPatchVectorField::laminarSquareInletFvPatchVectorField
(
    const fvPatch& p,
    const DimensionedField<vector, volMesh>& iF
)
: //<< gleicehs mit einem :
    fixedValueFvPatchVectorField(p, iF),
    maxValue_(0),
    n_(1, 0, 0), //<<<--- was ist das? später werden n_ und y_ als variablen genutzt O_>
    y_(0, 1, 0)
{}

was sind y_ und n_ und was tut das eine : ? ist das überhaupt C? danke für die hinweise :()

C++, kein C.

Vermutlich findest Du an anderer Stelle in der Klassendefinition von laminarSquareInletFvPatchVectorField, daß maxValue_, n_ und y_ Member-Variablen sind. Diese Schreibweise im Konstruktor ist eine "initialization list", und die macht so ziemlich genau das, was der Name sagt: Damit werden diese Variablen initialisiert. Der erste Teil ist der Aufruf des Konstruktors der Elternklasse, der offenbar zwei Parameter erwartet. Danach folgt die Initialisierung der drei Member-Variablen. maxValue_ wird wohl sowas wie ein int sein. Obiges macht also die Zuweisung maxValue_ = 0. n_ und y_ sind anscheinend Objekte irgendeiner Klasse (dem Aussehen nach bestimmt 3D-Vektoren), die Du normalerweise mit TheUnknownClass n_(1, 0, 0); erstellen würdest.

Alternativ könntest Du das auch im (oben leer gelassenene) Body des Konstruktors machen. Welche Feinheiten und Unterschiede es dabei im Detail zu beachten gilt, liest Du am besten mit dem Stichwort "initialization list" irgendwo nach.

BTW, daß Du ...

n_ /= mag(n_);
y_ /= mag(y_);

... machen darfst, liegt mit ziemlicher Sicherheit an einem überladenen /-Operator in der entsprechenden Klasse.

--
Always remember that you are unique. Just like everybody else.