Alkotórészfunkciók meghatározása 1
A komponens funkciót mindig le kell írni az osztály testében. A hagyományos (globális) funkcióktól eltérően az összetevő funkció hozzáférhet az osztály minden összetevőjéhez (bármilyen hozzáférési státuszsal). Az osztály funkció-összetevője ugyanolyan kiterjedésű, mint az osztály, amelyhez tartozik. A programozó befolyásolhatja a fordítót úgy, hogy felhívja őt arra, hogy egy funkciót jelöljön be (beágyazva). E célból egy inline szolgáltatásszót (specifikátort) definiál a függvénydefinícióban. Az osztályok meghatározásakor az összetevők funkciói szintén helyettesíthetőek. Az inline szolgáltatási szó kifejezett használatán túl a következő megállapodást alkalmazzuk. Ha a definíció (nem csak a prototípus) a függvényosztályhoz tartozik, teljesen be van helyezve az osztályba (az osztály testében), akkor ez a függvény alapértelmezés szerint helyettesíthető. Így definiálják a komplex1, komplex, stroka osztályok összetett funkcióit, amelyeket korábban példaként használtak. A felsorolt osztályok összes funkcióját a számítógép képes helyettesíthetőnek tekinteni, azaz minden egyes alkalommal, amikor ezeket a funkciókat hívják, a kódjuk közvetlenül a hívás pontjába épül.
De a helyettesített funkciók nem mindegyik funkciót. A beillesztendő funkció nem lehet rekurzív, nem tartalmazhat hurkot, kapcsolót stb. Ez a korlátozás nagyon fontos, ebben a vonatkozásban van egy másik módja annak, hogy meghatározzuk az osztályhoz tartozó funkciókat. Ez abból áll, hogy csak az összetevő funkció prototípusa kerül az osztály testébe, és meghatározása kívül esik az osztályon, mint bármely más, a programban szereplő funkció meghatározása. Ezzel a komponens funkció külső definíciójával inline specifikálóval is rendelkeznie kell. ugyanakkor a helyettesített funkciókra vonatkozó fenti korlátozások ismét felmerülnek.
Az összetevő funkció külső meghatározásával a programozónak meg kell adnia a fordítónak, hogy melyik osztályba tartozik. Ehhez használja a '::' bináris formátumát (scope scope statement).
A felhasználás formátuma ebben az esetben a következő:
<имя класса>. <имя компонентной функции>
A fenti terv, amelyet az összetevő funkció minősített nevének nevezünk, azt jelenti, hogy a függvény az osztály egyik eleme, és működési körébe tartozik. Ez a definíció összeköti a függvényt az osztályba, és lehetővé teszi, hogy közvetlenül használjon az osztály (objektumai) és az osztályhoz tartozó bármely funkciót (ez saját saját és védett védett összetevőire vonatkozik).
Az összetevő funkció külső meghatározásával a prototípus az osztály testébe kerül:
<тип> <имя функции> (<спецификация и инициализация параметров>);
Az osztály testén kívül az összetevő funkció az alábbiak szerint van meghatározva:
<тип> <имя функции> (<спецификация формальных параметров>)
<тело, принадлежащее классу функции>
Például egy olyan program, amely az osztály "vektorát kétdimenziós térben" használja.
Az osztály komponens adatai (tulajdonságai): vektor koordináták.
Az osztály komponensfunkciói (módszerek):
1) koordináták bevitele;
2) a koordináták származtatása;
3) a vektor hosszának meghatározása.