пятница, сентября 25, 2009

Приехала на фестиваль 404

Завтра в Самаре будет фестиваль 404. Я решила посетить его с мужем за компанию. О разработке игр там, похоже, ничего не будет, так что подробные отчеты ищите на блогах веб-разработчиков, если интересно.

вторник, сентября 08, 2009

Блог I Get Your Fail

I Get Your Fail - Epic failures in the game development field. Что-то вроде The Daily WTF, но посвящен исключительно геймдеву.

Ссылку на него я привожу не столько для того, чтобы поржать, а скорее для того, чтобы поучиться на чужих ошибках.

Пара интересных видео оттуда.

Неправильная физика обломков


Атака ветряных мельниц

понедельник, сентября 07, 2009

Конструктор или оператор присваивания?

В C++ не всегда бывает так, что знак = означает вызов оператора присваивания, из-за чего народ начинает путаться.

Я нашла в comp.lang.c++.moderated большой хороший пример, может пригодится кому.


class B { ... };

class A
{
    ...
    public:
        // Constructor
        A() { ... }

        // Copy constructor
        A(const A& a_obj) { ... }

        // Constructor overloading
        A(const B& b_obj) { ... }
    ...
        A& operator=(const A& a_src) { ... }
    ...

};

// Примеры:
    A    a1;            // конструктор вида A()
    A    a2(a1);    // конструктор копирования A(a1)
    A    a3 = a2;    // конструктор копирования A(a2)

    B    b;
    A    a4(b);    // перегруженный конструктор A(b)
    A    a5 = b;    // перегруженный конструктор A(b)

    a1 = a5;    // operator=(const A&) то есть operator=(a5)
    a2 = b;    // Шаг1: создается временный объект класса а A
               // с помощью конструктора вида A(b),
               // Шаг2: -> operator=(const A&) то есть operator=(A(b)) 

Если будете экспериментировать, не забудьте выключить оптимизацию.