Класове
      В обектно-ориентираното програмиране (ООП) класовете дават възможност да се скрият (защитът) данните, като всеки не може да има достъп до тях. Чрез класът могат да се задават различни права на достъп.
О. Класът представлява набор от разнообразни типове данни
и функции с различни права на достъп, определени с една декларация.
     Правата на достъп се наричат още спецификатори на достъп и могат да бъдат:
private , protected и public .
В обектно-ориентираното програмиране свойствата (форма и цвят) - съответстват на елементите от днни, а начините на поведение(т.е. функциите) - на методите.
Данните и функциите декларирани в дефиницията на класа са съответно:
- член променливи и член функции.
      Деклариране :                                    Пример :
         
         class Етикет                                              class suma
{                                                             {
     спецификатор за достъп :                                         public :
тип1 член1;                                                       void set_xy (int, int);
                                                                         int get_xy () { return (x+y);}
      спецификатор за достъп :                                        private :
тип2 член2;                                                       int x, y;

} име на обекта (променливата);             } b;

      class – служебната дума за деклариране на клас;
      Етикет – името на класа
      тип – показва от какъв тип ще бъдат променливите (идентификаторите) или функциите;
      име на обекта - не задължително поле, служи за директно
деклариране на обекти - в конкретния случай това е (променлива, обекта, екземпляра
инстанцията - всички имена имат едно и също значение)  променливата b.
    Правилното наименование е обекта b.
       Основната идея на класовете е, че можем да създаваме
собствени типове многокомпонентни данни.

     Може да си представим името на класа като име от прости
типове данни: int a, double a,b, char c; така и класа sum
може да декларира обекти (инстанции) по този начин: sum a;
Спецификаторите за достъп се използват за скриване и предпазване
(капсулиране) на данните.
    Спецификатори на достъп и могат да бъдат:
      private - членовете от този клас, могат да бъдат извикани
само от членовете на същия клас или от приятелските му класове;
      protected - членовете на този клас, могат да бъдат извикани
само от членовете на същия клас, от приятелските му класове,
така и от производните му класове;
      public - могат да бъдат извикани от всяка точка на програмата
от където се вижда класът.
    Разликата между структурите и класовете е само това, че класовете
имат различни права на достъп и функции, чрез които се достига
до защитените данни.
В структурата член данните по подразбиране са публични.
В класовете член данните и член функциите по подразбиране са защитени ( private ).

Пример 1 : Създаване на клас за събиране на две числа .
#include <iostream> //for Code Blocks
using namespace std;
class sum
{
   public :
   void set_xy (int, int);
   int get_xy () { return (x+y);}
   private :
   int x, y;
} b;
void sum::set_xy (int a, int c)
{
   x=a;
   y=c;
}
int main()
{
   sum a;
   a.set_xy(5,3);
   b.set_xy(5,10);
   cout<< a.get_xy()<< endl;
   cout<< b.get_xy()<< endl;
   return 0;
}
Обяснение:   програмата извежда съответно 8 и 15 това е сумата на
5+3=8 и 5+10=15 . Класът декларира две функции set_xy (int, int) и get_xy()
, който могат да бъдат викани от всяка точка на програмата. Защото са
декларирани като public членове.
Също така са декларира и две променливи int x, y; който могат да бъдат извикани
само от членове на този клас, защото са декларирани като private членове.
    Фактически могат да бъдат извикани само от функциите
set_xy (int, int) и get_xy() .

Името на класа може да се използва за деклариране на нови променливи (обекти), както int, double, float.
Благодаря за вниманието Ви !