Язык программирования C++ для профессионалов



           

Ссылка на себя - часть 3


class calculator1 { int cache_val; int cache_arg; // ... public: int compute(int i) const; // ... };

int calculator1::compute(int i) const { if (i == cache_arg) return cache_val; // нелучший способ ((calculator1*)this)->cache_arg = i; ((calculator1*)this)->cache_val = val; return val; }

Этого же результата можно достичь, используя указатель на данные без const:

struct cache { int val; int arg; };

class calculator2 { cache* p; // ... public: int compute(int i) const; // ... };

int calculator2::compute(int i) const { if (i == p->arg) return p->val; // нелучший способ p->arg = i; p->val = val; return val; }

Отметим, что const нужно указывать как в описании, так и в определении постоянной функции-члена. Физическое постоянство обеспечивается помещением объекта в защищенную по записи память, только если в классе нет конструктора.

on_load_lecture()

Дальше »

  Если Вы заметили ошибку - сообщите нам.  

Страницы:

« |

1

|

2

|

3

|

4

|

5

|

6

|

7

|

8

|

9

|

вопросы | »

|

учебники

|

для печати и PDA

Курсы | Учебные программы | Учебники | Новости | Форум | Помощь



Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование




Содержание  Назад  Вперед