Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 2.12 Вкладені класи. - Програмування С, С++теорія та практика (частина 2) - Studbook

Програмування С, С++теорія та практика (частина 2)

2.12 Вкладені класи.

Бувають ситуації, коли при оголошенні одного класу в середині його оголошення можуть бути оголошені інші класи. У таких випадках такі класи називають вкладеними класами (пезґеС сіаззез), а клас, що їх об'єднує - клас з об'єктною ідентичністю (оЬ]есґ ісіепґіґу). Наведемо гіпотетичний приклад, що описує вкладеність класу Мезґей у класі С.

#іпсіигіе<іозЬгеат.Ь> сіазз С {

сіазз Нез'Ьегі.

{

іпЬ мЬо; риЬііс:

^зЬегі(іпЬ а) ;

~№зЬей^оій) ;

} ;

риЬііс:

С(іпЬ Ь)

{

^зЬегі (Ь*Ь) ; соиЬ<<"СопзЬгисЬог С\п";

}

~С (тоіЛ)

{

соиЬ<<"БезЬгисЬог С\п";

}

С:^езЬегі:^езЬегі(іпЬ а)

{

мЬо=а;

соиЬ<<"СопзЬгисЬог о£ ^зЬегі сіазз \п" ;

}

С: ^езЬегі: :~^зЬегі^оігі)

{

соиЬ<<"БезЬгисЬог о£ ^зЬегі сіазз\п";

}

іпЬ таіп(іпЬ агдс, сЬаг* а^дV[])

{

С оЬ^есЬ (3) ; геЬигп 0;

В результаті роботи даної програми ми отримаємо:

СопзЬгисЬог о£ ^зЬегі. сіазз БезЬгисЬог о£ ^зЬегі сіазз СопзЬгисЬог С БезЬгисЬог С

Складно відразу визначити, в яких ситуаціях класи краще реалізувати якраз за рахунок вкладення. Так, даний підхід широко застосовується у широковідомій технології об'єктів СОМ (Сошропепґ ОЬ]есґ Мойеї), основна з цілей якої полягає у відокремленні інтерфейсу класу від його реалізації.

 

52