template ref class complex { // bezárt adatok private: T re,im; // konstruktorok public: complex() : re(0), im(0) {} // 0,0 alapértelmezett complex(T r, T i) : re(r),im(i) {} // két konstruktor // tulajdonságok - csak c++/cli, public-nak célszerü property T Re // Re tulajdonság: fv a bezárt adathoz, { T get() { return re; } // nem kell a használathoz void set(T value) { re=value; } // zárójel pl: c->Re=0; } property T Im { T get() { return im; } void set(T value) { im=value; } // ha nem irnám meg a set-et, } // csak olvasható tulajdonságot kapnék // operátorok, + és *. egyik operandus az aktuális osztály, cm a másik complex^ operator + (complex ^cm) // összeadás { // cm-hez a public tulajdonságon keresztül férek hozzá complex^ cki=gcnew complex(re+cm->Re,im+cm->Im); // új szám return cki;//nem ciki visszatérni. } complex^ operator * (complex^ cm) // szorzás { T a=re,b=im,c=cm->Re,d=cm->Im;// wikipédiás jelölés complex^ cki=gcnew complex(a*c-b*d,b*c+a*d); return cki; } // a 3. órán nem valósitottuk meg a komplex szám hosszát, // illetve a hossz négyzetét. majd most! };