АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

Пример 10. class Coord // базовый класс координат

Прочитайте:
  1. Альтернирующие синдромы – примеры, этиология, клиническая симптоматика.
  2. Внутривенное введение лекарственного вещества на примере эуфиллина
  3. Генная инженерия и современная биотехнология. Примеры использования в микробиологической практике.
  4. Ежегодно на земном шаре опухоли впервые выявляются примерно у 6000000 человек.
  5. Запомните примеры моногенных заболеваний, передающихся по аутосомно-доминантному, аутосомно-рецессивному и Х-сцепленному рецессивному типам.
  6. Иллюстрация игр № 1—15 примерами
  7. Клинический пример
  8. Клинический пример
  9. Клинический пример
  10. Клинический пример

class Coord // базовый класс координат

{

int x, y;

public:

Coord (int Y, int Y) { x = X; y = Y;}

void SetVal (int X, int Y) { x = X; y = Y;}

void GetVal (double & X, double & Y) const; // константная функция

};

Coord:: GetVal (double & X, double & Y) const

{

X = x; Y = y;

}

int main ()

{

Coord p (3, 8);

const Coord p 1(6, 9); // константный объект

int a, b;

p. GetVal (a, b);

p 1. SetVal (a, b); // Ошибка!!! Вызов неконстантной функции-члена

p 1. GetVal (a, b);

}

Чтобы обойти указанные ограничения на использование константных функций-членов класса, в стандарт языка С++ было введено новое ключевое слово mutable. Это ключевое слово позволяет указать, какие данные-члены класса могут быть модифицированы константными функциями-членами. Ключевое слово mutable нельзя использовать для статических и константных членов-данных; оно используется как модификатор типа, то есть синтаксис его использования имеет вид:

mutable <тип_данных> <имя_переменной-члена>;

Пример 11.

class AnyClass

{

mutable int count;

mutable const int * iptr;

public:

int func (int i =0) const

{

count = i ++;

iptr =& i;

cout << iptr;

return count;

}

};

Здесь в операторе mutable const int * iptr; модификатор mutable допустим, так как iptr является указателем на целое число, которое есть константа, хотя сам указатель константой не является.

 


Дата добавления: 2015-09-27 | Просмотры: 342 | Нарушение авторских прав







При использовании материала ссылка на сайт medlec.org обязательна! (0.003 сек.)