Pushkoff
> а потом это
> http://petecubano.wordpress.com/2010/12/20/data-oriented-design-the-numbers/
интересно, а мужик знает, что у него мемлик на 4-й строчке кода...
я недавно выкладывал статью в паскалотреде, где разница в вызове виртуальной функции и инлайна была около 20 раз...
RaZOR
> интересно, а мужик знает, что у него мемлик на 4-й строчке кода...
там на всех 4 строчках либо { либо //
приведи кусок кода который ты имеешь в виду под 4 строкой...
Deft
> Нет, сверил с оригиналом - все верно. Автор имеет ввиду умножение целого числа
> на ноль. Видимо, он пытался таким образом подчеркнуть то, что код очень часто
> не проходит дальше, после примера это написано:
посмотрел оригинал, у него написано arg == 0, а не arg* = 0
Pushkoff
самый первый пример... с каких пор не нужно указывать виртуальный деструктор для базовых классов?
RaZOR
> самый первый пример... с каких пор не нужно указывать виртуальный деструктор для базовых классов?
а с каких пор его указывать обязательно? я всегда стараюсь его не указывать если уверен что удаление по указателю этого типа не будет или оно не желательно, удаление по классу Movable я бы назвал нежелательным и "ошибкой архитектуры", держите себя в рамках
2ashujon

Может быть у меня более старая версия статьи =( Короче, поправил на (arg == 0) ;)
ashujon
> а с каких пор его указывать обязательно?
я где-то сказал, что его нужно указывать обязательно? если в его случае, все данные создаются и уничтожаются вне класса, то да, все нормально.
PS. поглядел код еще раз, там и не указано где что создается, так что претензию снимаю :)
Deft
предположу что это результат кривого распознавания текста, смотри другие источники
ashujon
> удаление по классу Movable я бы назвал нежелательным и "ошибкой архитектуры"
конкретно по Movable да, согласен, но часто возникают ситуации хранения указателей на базовые типы и соответствующее удаление.
RaZOR
> но часто возникают ситуации хранения указателей на базовые типы и соответствующее удаление.
спс кэп, но это уже другой вопрос
ashujon
да не за что
RaZOR
> с каких пор не нужно указывать виртуальный деструктор для базовых классов?
это правило для школьников, которые тулят наследование во все дыры а потом спрашивают почему у них вызывается не тот деструктор...
а вообще у объектов положенных в массив, при определенных условиях вызовется не тот деструктор даже в случае если он виртуален...
скомпиль такой код под GCC и будешь сильно удивлен в возникшей ошибке
class A
{
int i;
public:
virtual ~A(){}
};
class B : public A
{
int j;
public:
virtual ~B() {}
};
int main()
{
A* a = new B[20];
delete[] a;
return 0;
}
Pushkoff
скомпилил, падает на деструкторе. забавно. причину падения пока не уловил.
>> предположу что это результат кривого распознавания текста, смотри другие источники
Проверил из 3х разных источников - результат один и тот же, видимо, все-таки издание более раннее у меня.
Тема в архиве.