Тема: Less Toolkit
Показать сообщение отдельно
Старый 28.01.2009, 00:29   #21 (Ссылка на пост)
Lester
Гаденыш
 
Аватар для Lester
Пол:
 
Активность Longevity
2/20 16/20
Today Сообщения
0/5 sssss4648
Благодарил(а): 2,442
Благодарили 5,834 раз в 2,093 постах
Галерея: 0
Вес репутации: 78 Lester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторы
Цитата:
Сообщение от Marchello Посмотреть сообщение
Я как любитель gamedev-а всегда склонен к быстродействию кода, поэтому стараюсь обращать внимание на изъяны в этом.
Поэтому методы:
Код:
virtual String      GetPath( void ) const = 0;
virtual ArrayString GetGroups( void ) = 0;
virtual ArrayString GetEntries( void ) = 0;
virtual String      GetFirstGroup( void ) = 0;
virtual String      GetNextGroup( void ) = 0;
// и т.д.
у меня вызывают некоторые волнения (думаю понятно почему), а особенно те которые возвращают ArrayString.
ИМХО лучше возвращать const String& или const String* (это предпочтительней).
А если же предполагается возвращать объекты из стека метода,
то можно даже так написать:
Код:
void GetEntries( ArrayString* s)
{
  // тут мы заполняем сразу 's' и никаких стековых объектов
}
выглядит чуть уродливей но эффективно.
согласен - теперь возвращается const String& и const ArrayString&, GetEntries и GetGroups теперь принимают в качестве аргумента ArrayString&

Цитата:
Сообщение от Marchello Посмотреть сообщение
И еще на счет массива, у тебя все методы виртуальные, а класс определен в виде макроса. То есть, если и наследоваться от него
то только уже от конкретной реализации (с конкретным типом) - тоже не функционально. К тому же объявление методов виртуальными скорости не добавляет. А если отказаться от виртуальности (и от макросовости) - можно с половину методов сделать с inline (правда нужно чтобы эти методы были в h файле, хотя если отказаться от макроса - нужно делать шаблоном, а с шаблонами - все методы будут в h файле )) ).
и опять спасибо вариант с шаблоном я пока занес в TODO
__________________
- Слава Україні! - закричали они, вместо приветствия.
- Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским?

Последний раз редактировалось Lester, 28.01.2009 в 07:50.
Lester вне форума  
Ответить с цитированием