Статичні функції
При вивченні теми «Об’єкти і класи» (лекції 11-13) ми ввели поняття статичних даних класу (програма 11.8). Нагадаємо, що статичні дані не дублюються для кожного об’єкту, швидше, один елемент даних використовується всіма об’єктами класу. В тій же програмі був показаний клас, який запам’ятовував, скільки в нього було об’єктів. Спробуємо розвинути цю ідею, показавши, що функції, як і дані, теж можуть бути статичними. Крім демонстрації статичних функцій, наша програма створить клас, який дозволить присвоювати унікальний ідентифікаційний номер (ID) кожному зі своїх об’єктів. Це дозволяє запитати в об’єкта, хто він такий, що буває корисним при відлагодженні програми. Ще одна задача цього прикладу полягає в тому, щоб пролити світло на деструктори і роботу з ними.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<bios.h>
/////////////////
class gamma
{private:
static int total;
int id;
public:
gamma()
{total++;
id=total;
}
~gamma()
{total--;
cout<<”Видалення ID”<<id<<endl;
}
static void showtotal()
{cout<<”Всього:”<<total<<endl;
}
void showid()
{cout<<”ID:”<<id<<endl;
}
};
////////////////
int gamma::total=0;
//////////////////
int main()
{clrscr();
gamma g1;
gamma::showtotal();
gamma g2,g3;
gamma::showtotal();
g1.showid();
g2.showid();
g3.showid();
cout<<»------------endofprogram------\n»;
return 0;
}
Програма 22.14
Дата добавления: 2015-08-26; просмотров: 1040;