Этого же результата можно достичь,
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::Интернет-Университет Информационных Технологий - дистанционное образование
|
Содержание Назад Вперед