Опубликовано 28 июля 2009, 21:15

Пришёл как-то раз холоп на царский бал. Долго ли, коротко ли ходил он по углам, и, не найдя себе никакого развлечения, достал из-за пазухи жбан квасу; обливаясь, залпом выпил и завалился спать. И приснилось ему три сна.

Дальше вести повествование в такой же манере неудобно, поэтому, если вы не возражаете, я переключусь на привычное всем нам непонятно что1. Первый сон (кошмар, как, впрочем, и остальные) был про Qt. Много чего можно бояться (я, например, людей боюсь, и только недавно начал понимать, что никуда оно не делось; впрочем, это тема для отдельной записи, которая, скорее всего, никогда не будет написана), но чтобы фреймворков... Ужасная, непонятная мешанина из слов, действий и событий, и всё под знаменем буквы Q. Когда прямо перед глазами выскочил огромный Q_OBJECT, я всё-таки смог, дико вдохнув, проснуться. И всё равно Qt, Qt, Q... Ужасно, честное слово. Бояться надо убить ногой соседа или задушить его же квасом четвёркой, а он от фреймворков пухнет.

К слову, программирование на C++ продолжается. И сегодня мы познакомимся с воистину великолепным определением класса:

class AbstractMovieGrid
{
    public:
        AbstractMovieGrid(int _width,                      int _height,
                          int _movieWidth,                 int _movieHeight,
                          int _movieFieldHorizontalMargin, int _movieFieldHorizontalPadding,
                          int _movieFieldVerticalMargin,   int _movieFieldVerticalPadding);

        int getWidth();
        int getHeight();
        int getMovieWidth();
        int getMovieHeight();
        int getMovieFieldHorizontalMargin();
        int getMovieFieldHorizontalPadding();
        int getMovieFieldVerticalMargin();
        int getMovieFieldVerticalPadding();

        void setWidth(int value);
        void setHeight(int value);
        void setMovieWidth(int value);
        void setMovieHeight(int value);
        void setMovieFieldHorizontalMargin(int value);
        void setMovieFieldHorizontalPadding(int value);
        void setMovieFieldVerticalMargin(int value);
        void setMovieFieldVerticalPadding(int value);

        enum DrawingDirection
        {
            Horizontal,
            Vertical
        };
        void drawAll(DrawingDirection dd);

    protected:
        int width;
        int height;
        int movieWidth;
        int movieHeight;
        int movieFieldHorizontalMargin;
        int movieFieldHorizontalPadding;
        int movieFieldVerticalMargin;
        int movieFieldVerticalPadding;

        int cols;
        int rows;        
        void calculateDimensions();
        void correctMargins();

        void callDrawer(int col, int row);
        virtual void draw(int col, int row, int x, int y) = 0;

};

Ололо, наверное, акцессоры у него имеют вид

int AbstractMovieGrid::getWidth()
{
    return width;
}

,— подумаете вы, и окажетесь правы. Неужели и мутаторы такие же?— продолжая издевательства, может спросить язвительный читатель — и окажется неправ. Мутаторы имеют вид:

void AbstractMovieGrid::setWidth(int value)
{
    width = value;
    calculateDimensions();
    correctMargins();
}

Хотя да, поначалу я копипастил это исключительно чтобы поиздеваться, но потом эта атака клонов внезапно оказалась полезной. Вывод делаем такой: Qt — это не страшно2, а прямой доступ к данным-членам — зло.

Но мы отвлеклись от темы! А ведь я помню ещё второй кошмар — я случайно забыл выключить сигнализацию перед тем, как открыть дверь, а куда звонить и какой у нас код хер знает. Продолжалось это недолго (потому что НЕКТО открыл, если можно так выразиться, дверь, и стало жутко холодно), а, проснувшись, я вспомнил, что номер записан в телефоне, а кодом я неоднократно шутил прекрасно помню. Вот до у тебя того музыка противная, честное слово!

В общем вот так-то всё, гораздо лучше, чем было до этого. В том плане, что наконец-то вопящий инспектор Гаджет покидает главную страницу. Ура!

[1] — Koromshuk (20:15:19 23/07/2009)
Предыдущие примерно то же самое пытались сообщить. Ничего не получилось, тем не менее.
[2] — Страшно это моя система RAD (я вообще не считаю динамическую типизацию даже необходимым условием для быстрой работы, но РЕБЯТАМ, похоже, она является достаточным), которую я придумал опять же для плюсов чуть раньше — в автобусе. Вкратце суть такова: есть универсальный тип — указатель на объект в пуле объектов, где-то там же должен обитать сборщик мусора, есть макросы, чтобы не писать лапшу, грабить тоже дозволяется.
Комментарии (4)
s_mordvinov
29 июля 2009, 13:33
S Q #1
КВАС
<b>КВАС</b>:-\
themylogin
29 июля 2009, 18:53
S Q #2
int AbstractMovieGrid::getWidth()
{
return width;
}
А const-то кто будет писать за тебя, Пушкин?
<quote>int AbstractMovieGrid::getWidth() { return width; }</quote>А <i>const</i>-то кто будет писать за тебя, Пушкин? :-!
ramwoolf
30 июля 2009, 20:18
S Q #3
это то, что приснилось в лесу?)
это то, что приснилось в лесу?)
themylogin
30 июля 2009, 20:38
S Q #4
*YES*
*YES*
Добавить комментарий
Войдите через  Доступные тэги: <b>, <i>, <s>, <u>, <a href="">, <img src="" /> (загрузить), <pre>, <quote>
Теги
1nsk Alternative E-Business Embedded GNU/GPL-софт HTML/CSS ICQ KDE last.fm Linux Linuxnsk Live Lyceum game Microsoft Motivator MySQL New Age P2P Party Photoshop PHP Python Qt4/C++ SEO Sibnet thelogin.ru Timelapse Web 2.0 Webdev Webstream Windows Wireless А я говорил! Авто Админ Алексеев Аниме Атмосфера Безобразие Бесплатный Wi-Fi Блоги Большой бизнес Боты Бред Бухать Бытовуха Велосипед Весна Вечер Взлом Винил Винтаж Вконтакте Вода Воспоминания Гетто Гламур Гопота Горский Графити Грузовик Дача Двор Девушки Девченки!!! Деньги Дизайн Дом Домофоны Драка Драки Еда Железо Животные Заведения общественного отдыха Задроты Затулинка Зима Игрушки Игры Идея Интересно Интернет Исследование История Казань Карикатура Квартира Класс Компьютеры Коромшук Коты КПК Кран Красиво Криминал Крыша Курение Лето Литература Лицей Лицей НГТУ Лохи Магнитофоны Маркса Мат Математика Машинный перевод Мегафон Менты Метро Мечты Мифы Мне стыдно Мобайл Можга МТС Музыка Мультикасса Мультики Мы помним Надписи Наука НГТУ Недвижимость Непоняятно Новосибирск Носители Ноутбуки Ночь Обидно Обман Образование Общественный транспорт Омск Опечатки Орфография Осень Парк Периферия Пиратство Плохо Погода Поезд Помойка Праздники Презрение Природа Провайдеры Программирование Протест Радиотехника Растения Реклама Религия и вера Ретро Рисунок Руины Рэп Салют Сервер Серверы Сервис Сериалы Скринкаст Скриншоты Смешно СМИ Снег Собаки Совет Софт Спам Спасём Россию Спецтранспорт Стоп-ляп Стройка Студяга Танцы ТВ Типа страх Трамваи Транс Транспорт Уважаю Ужас Умный дом Утро Филдрепорты Философия Форум ФПМИ Хикки Хостинг Цитатник Школа Школа 208 ЭГ Эксперимент Юго-Западный
Twitter 28-07-2009
Lorem Ipsum
WANNA MORE DRINK ПАЦАНЫ ВЫРУЧАЙТЕ.
Lorem Ipsum
The Beatles - Birthday - самый первый хардстайл-трек.
Lorem Ipsum
Оказывается какой-то долбоёб регулярно заходит на мою ферму :O.
Lorem Ipsum
Slushai me Mneniyata zabravi. Chui, za sinite skali si pripomni. Nov pat vseki den napred nameri kak obichashe da se katerish. Kotkata v orel dnes prevarni.
Lorem Ipsum
Пацаны, чо я узнал! Форма Бэкуса-Наура - не прихоть Хиценки, она действительно применяется :O (см. yacc).
Lorem Ipsum
Когда мне будет 20 лет, и я смогу просто так выкинуть две тыщи баксов на ебее за этих няшек из альбома, оно будет стоить в десять раз дороже >:o FFFFFFUUUUCK.
Lorem Ipsum
Усилитель НЧ двухтактный и обеспечи- вает выходную мощность - 10...12 Вт, при нелинейных искажениях в 10%.
Lorem Ipsum
Мои родители тряпки ешкув. Нельзя так воспитывать детей.
Lorem Ipsum
FFFFFFFFFFFUUUUUUUUUUUUUUCK.
Lorem Ipsum
чёрт, поцоны! и квеп тоже сотрите мой оттуда.