C++/CLI és Managed C++

Alprogramok

Alprogramok

Eljárások, függvények. Működésük egyezik a hagyományossal, viszont például tömb típusú paraméter vagy visszatéri érték esetén a formális paraméterek szintaktikája más egy kicsit, illetve bevezettek egy új függvénytípust, a "tulajdonságot", azaz __property-t. Ez utóbbi lényegében csak szintaktikai könnyítés a programozó számára, elviekben teljesen ugyanaz mint egy hagyományos függvény.

Példák:

int MaxKer( int vArray __gc[] ) { /*...*/ return max; } // ez egy integer típusú tömböt váró függvény bool Primek( int vArray __gc[] ) __gc[] { // ez is ugyanazt vár aktuális paraméterként, de bool típusú tömböt ad vissza bool vPrimek __gc[] = new bool __gc[ vArray->Length ]; //... return vPrimek; }

Tulajdonság (__property). Osztályokban és struktúrákban használják, általában egy get és egy set műveletet végez el az objektum védett változóin, de bármi mást végrehajthat, csakúgy mint egy hagyományos eljárás vagy függvény.

Példa:

__property int get_Value( void ) { return m_value; } __property void set_Value( int val ){ m_value = val; } //hívás Osztalyom->Value = 3; int v = Osztalyom-<Value;

Fontos, a tulajdonság azonosítójának a szintaktikája: mindig get_ és set_ kell, hogy legyen a prefixük és a neve nem ütközhet más, a tulajdonság által látható változó, illetve függvény nevével.

A 2005-ös .NET-ben, azaz a C++/CLI (a Managed C++ hivatalos elnevezése 2005-től) nyelvben, már megváltoztatták a tulajdonságok szintaktikáját, mely már majdnem teljesen hasonlít a C#-os szintaktikára.

Példa:

private: int _StudRank = 0; public: property int StudRank { int get() { return _StudRank; } void set(int x) { _StudRank = x; } }