Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 09.09.2011, 00:52   #16
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: mutable volatile extern register auto typename explicit

HolyDel
мне почему то кажется, что конкретный пример - очень гадкая штука.
подчеркну, что это лишь моё скромное мнение, но методы должны выполнять одну, минимальную и очевидную(!) операцию. Т.е. то, что называется побочным действием было бы здорово свести к минимуму. В твоём же случае, обычный геттер от которого ждут обычного гета, да ещё и веря, что этот геттер ничего не сделает с данными (т.к. const) с какого-то неведомого перепуга, ребилдит матрицу и меняет данные!.. ну косяк же очевидный, не?..
(Offline)
 
Ответить с цитированием
Старый 09.09.2011, 02:32   #17
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: mutable volatile extern register auto typename explicit

я не вкурил. какой смысл в const в функциях?
у ноды есть логическое состояние и физическое.
const заставляет физически быть объект константным
а mutable - логически.

почему лучше ориентироваться именно на логическое состояние:
возьмем для примера функцию построения бяки до ноды

void BuildBaka(Node *toNode)
{
...toNode()->getLocalMatrix();
...toNode()->setPosition -< логическая ошибка, не должно компилироваться. но если убрать константность метода - то компилироваться будет. 
}
void BuildBaka(const Node *toNode)
{
...toNode()->getLocalMatrix(); <- без mutable не компилируется
...toNode()->setPosition <- не компилируется, логическая ошибка, все правильно.
}
ну косяк же очевидный, не?..
не. помоему получение матрицы очень даже минимальная команда. куда минимальнее?
или предлагаете выносить в клиентский код что то вроде:
if(node->NeedRebuildLocalMatrix())
node->RebuildLocalMatrix();

node->getLocalMatrix();
код, кстати, деалет совершенно то, что от него ожидают - возвращает локальную матрицу объекта
каким именно способом он это делает - клиенский код волновать не должно.
(Offline)
 
Ответить с цитированием
Старый 23.09.2011, 16:01   #18
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: mutable volatile extern register auto typename explicit

вот хорошая статья:
http://alenacpp.blogspot.com/2005/10...constcast.html
(Offline)
 
Ответить с цитированием
Старый 23.09.2011, 16:59   #19
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Сообщение от HolyDel Посмотреть сообщение
вот хорошая статья:
http://alenacpp.blogspot.com/2005/10...constcast.html

Сообщение от impersonalis Посмотреть сообщение
Небольшой список "экзотических" ключевых слов (virtual, static и компания сюда не относятся ) с описаниями. Если по одной ссылке (на мой взгляд) сложно составить мнение о команде или рассказывается лишь одна область применения, то указаны несколько источников

mutable
http://www.quizful.net/post/cpp-keywords-usage
--> http://alenacpp.blogspot.com/2005/10...constcast.html <--

volatile
http://www.quizful.net/post/cpp-keywords-usage
http://alenacpp.blogspot.com/2006/04/volatile.html

extern
http://www.quizful.net/post/cpp-keywords-usage
http://www.sbp-program.ru/SBP-C-Memory-Class.htm#extern
http://www.gamedev.ru/code/forum/?id=56367

register
http://www.quizful.net/post/cpp-keywords-usage

auto
http://www.quizful.net/post/cpp-keywords-usage

typename
http://alenacpp.blogspot.com/2006/08/typename.html

explicit
http://jia3ep.blogspot.com/2008/07/e...nstructor.html
http://alenacpp.blogspot.com/2009/09/blog-post.html

const_cast
http://alenacpp.blogspot.com/2005/10...constcast.html
http://alenacpp.blogspot.com/2005/08/c.html

reinterpret_cast
http://alenacpp.blogspot.com/2005/08/c.html

dynamic_cast
http://alenacpp.blogspot.com/2005/08/c.html
http://ru.wikipedia.org/wiki/Dynamic_cast

static_cast
http://alenacpp.blogspot.com/2005/08/c.html
http://www.rsdn.ru/article/cpp/static_cast.xml
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 02.11.2011, 18:05   #20
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Есть ещё такая группировка некоторых ключевых слов из 1-ого поста
http://ru.wikipedia.org/wiki/Класс_памяти
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 05:43.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com