ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Класи в C ++
         

     

    Інформатика, програмування

    Класи в C + +

    Однією з основних рис C + +, якої немає в С, є концепція класів. По суті, класи - найважливіше поняття в C + +. Класи схожі на структури мови С. Однак структура З визначає тільки дані, асоційовані з цією структурою. Ось приклад структури С:

    struct CIRCLE

    (

    int radius;

    int color;

    (;

    Після того, як ви оголосили структуру, ви можете використовувати її в межах вашої функції main (), як показано нижче:

    void main ()

    CIRCLE MyCircle;

    ...

    ...

    MyCircle.radius = 18;

    MyCircle.color = 255;// 255 задає колір

    ...

    ...

    )

    Зі структурою MyCircle (що представляє окружність) асоціюються дані radius і color (радіус і колір). Клас в C + +, з іншого боку, має як асоційовані з ним дані, так і функції. Дані класу називаються елементами даних, а функції класу - елементами-функціями. Отже, у програмі, яка використовує класи, можна написати наступний код:

    MyCircle.radius = 20;

    MyCircle.color = 255;

    MyCircle.DisplayCircle () ;

    Перші два оператори присвоюють значення елементів даних MyCircle radius і color; третій оператор викликає функцію-елемент DisplayCircle () для виводу кола MyCircle. MyCircle називається об'єктом класу circle. Ваша програма може оголосити інший об'єкт з ім'ям HerCircle класу circle наступним чином:

    CIRCLE HerCircle;

    Наступні оператори присвоюють значення елементів даних HerCircle radius і color:

    HerCircle.radius = 30;

    HerCircle.color = 0;

    Потім ви можете використовувати функцію-елемент DisplayCircie () для виводу кола HerCircle:

    HerCircle.DisplayCircle ();

    Оголошення класу

    Перед тим як працювати з класом, ваша програма повинна його оголосити (так само як перед роботою зі структурою mystructure ви повинні були оголосити її елементи даних). У цьому розділі ви познайомитеся з синтаксисом оголошення класу. Ви будете і далі практикуватися з класом circle:

    class Circle (

    public:

    Circle ();

    void SetRadius (void);

    void GetRadius (void);

    ~ Circle ();

    private:

    void CalculateArea (void);

    int radius;

    int color;

    );

    Оголошення класу має наступну будову:

    class Circle (

    ...

    ...

    Тут ви вводите оголошення класу

    ...

    ...

    );

    Ключове слово class показує компілятору, що всі що знаходиться в фігурних дужках (()) належить оголошенню класу. (Не забувайте ставити крапку з комою в кінці оголошення.) Оголошення класу містить оголошення елементів даних (наприклад, int radius) і прототипи функцій-елементів класу. В оголошенні класу circle містяться такі елементи даних:

    int radius;

    int color;

    Оголошення також містить п'ять прототипів функцій-елементів:

    Circle ();

    void SetRadius (void);

    void GetRadius (void);

    ~ Circle ();

    void CalculateArea (void);

    Перший і четвертий прототипи виглядають дивно. Перший з них є прототипом функції конструктора:

    Circle ();

    Ви дізнаєтеся про роль конструктора пізніше в цьому розділі, а поки запам'ятайте синтаксис, який використовується в C + + для прототипу функції конструктора. Коли ви записуєте прототип конструктора, ви повинні слідувати правилами, наведеними нижче:

    • Кожне оголошення класу має включати прототип функції конструктора.

    • Ім'я функції конструктора має збігатися з ім'ям класу, а після нього повинні слідувати круглі дужки (). Якщо, наприклад, ви розкажете клас з ім'ям Rectangle, він повинен включати оголошення функції конструктора класу: Rectangle (). Отже, оголошення класу Rectangle має виглядати так:

    class Rectangle

    (

    public:

    Rectangle ();// Конструктор

    ...

    ...

    private:

    ...

    ...

    );

    • Не згадуйте ніякого значення, що повертається для функції конструктора. (Функція конструктора повинна мати тип void, але не потрібно це вказувати.)

    • Функція конструктора повинна розташовуватися під ключовим словом

    public.

    Функція конструктора завжди повертає значення типу void (незважаючи на те, що ви не вказали його в прототипі). Як ви незабаром побачите, функція конструктора зазвичай має один або більше число параметрів.

    Функція деструктора

    Функція деструктора записується в оголошенні класу наступним чином:

    class Circle

    (

    public:

    ...

    ...

    ~ Circle ();// Деструктор private:

    ...

    ...

    );

    Зверніть увагу на символ тильди (~), який передує прототипу функції деструктора. (На більшості клавіатур ви можете знайти символ тильди зліва від клавіші 1.) При записі прототипу функції деструктора виконуйте наступні правила:

    • Ім'я функції деструктора має збігатися з ім'ям класу і йому повинен передувати символ ~. Якщо, наприклад, ви розкажете клас з ім'ям Rectangle, ім'ям функції деструктора повинно бути ~ Rectangle. Отже, оголошення класу Rectangle має виглядати наступним чином:

    class Rectangle

    (

    public:

    Rectangle ();// Конструктор

    ...

    ~ Rectangle ();// Деструктор private:

    ...

    ...

    );

    • Не вказуйте ніякого значення, що повертається для функції деструктора. (Функція деструктора повинна мати тип void, але не потрібно це вказувати.)

    • Функція деструктора не має ніяких параметрів.

    Ключові слова public й private

    Прототипи функцій і оголошення елементів даних включаються в оголошенні класу в розділи public (відкрите) або private (закритий). Ключові слова public й private говорять компілятору про доступність елементів-функцій і даних. Наприклад, функція SetRadius () визначена в розділі public, і це означає, що будь-яка функція програми може викликати функцію SetRadius (). Функція CalculateArea () визначена в розділі private, і цю функцію можна викликати тільки в коді функцій-елементів класу Circle.

    Аналогічно, оскільки елемент даних radius оголошений в розділі private, прямий доступ до нього (для встановлення або читання його значення) можливий тільки в коді функцій-елементів класу Circle. Якщо б ви оголосили елемент даних radius в розділі public, то будь-яка функція програми мала б доступ (для читання і присвоювання) до елементу даних radius.

    Перевантажені функції

    У C + + (але не в С) ви можете використовувати одне і те ж ім'я для декількох функцій. Наприклад, ви можете оголосити дві функції з ім'ям SetRadius () в оголошенні класу CCircle. Такі функції називаються перевантаженими функціями.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.realcoding.net

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status