русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Константні об’єкти


Дата додавання: 2014-04-22; переглядів: 1407.


В кількох попередніх прикладах ми бачили, що ключове слово const можна використовувати для захисту від зміни значень змінних стандартних типів, наприклад, int. Виявляється, аналогічним способом можна застосовувати модифікатор const і для об’єктів класів. Якщо об’єкт класу оголошений з модифікаторм const, він стає недоступним для зміни. Це означає, що для такого об’єкта можна викликати тільки константні методи, оскільки лише вони гарантують, що об’єкт не буде змінений. В якості прикладу розглянемо програму 9.10.

#include <iostream.h>

#include <conio.h>

#include <bios.h>

class Distance

{private:

int feet;

float inches;

public:

//Конструктор з 2 аргументами

Distance(int ft,float in):feet(ft),inches(in)

{ }

void getdist() //Неконстантний метод

{cout <<"\nВведіть число футів "; cin >>feet;

cout << "дюймів "; cin>>inches;

}

 

void showdist() const //Константний метод

{cout <<feet << "\' "<< inches <<"\''";}

};

 

 

int main()

{

clrscr();

const Distance football(300,0);

//football.getdist();

cout <<"Довжина поля=";

football.showdist();

cout <<endl;

bioskey(0);

return 0;

}

 

Програма 9.10

Об’єкт football оголошений як константний, тому для нього можна викликати тільки константні методи, наприклад, showdist(). Виклики неконстантних методів, таких як getdist(), є некоректними.

При створенні класу хороший стиль програмування вимагає оголошення як константних функцій, що не міняють поля об’єктів класу. Це дозволяє тому, хто використовує даний клас, створювати константні об’єкти класу. З цих об’єктів можуть викликатися тільки константні функції.

 


<== попередня лекція | наступна лекція ==>
Константні методи | Підсумок


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн