MaNGOS Core

Форум любителей MaNGOS


    Операторы

    Поделиться

    MuTaToR

    Сообщения : 11
    Очки : 15
    Дата регистрации : 2009-04-30

    Операторы

    Сообщение автор MuTaToR в Вс Май 03, 2009 6:27 pm

    (буду добовлять все переменные в первый постчтоб кому потребовались не искали по топику)Думаю будет прогрес если объяснит что какой оператор означает, вот что меня интересует:

    #include - подключение библиотеки в < > название библиотеки.
    void - функция не возвращающая значение

    uint(32,8 и тд) - просто указание типа переменной и какого она будет размера.
    if - условие
    >> - непонятно что означают
    -> - это получить что-то конкретное из, так сказать, массива
    return - выходит из ф-ии
    cMgr - странно ни с чем не ассациируется

    bool - тип переменной, который имеет два значение true/false , тоесть да/нет (при объявлении типа переменной под неё резервируется место в памяти, если переменная будет использоватся в роле переключателя, то таким образом экономится память).
    break выходит из цикла.
    Вродебы покачто всё


    Последний раз редактировалось: MuTaToR (Ср Май 06, 2009 9:25 pm), всего редактировалось 3 раз(а)

    FreeMan
    Модератор
    Модератор

    Сообщения : 18
    Очки : 26
    Дата регистрации : 2009-04-19
    Откуда : Беларусь, Минск

    Re: Операторы

    Сообщение автор FreeMan в Пн Май 04, 2009 12:10 am

    MuTaToR пишет:Думаю будет прогрес если объяснит что какой оператор означает, вот что меня интересует:[size=9

    #include - прикрепить файл.
    void - незнаю
    uint(32,8 и тд) - незнаю тож]
    if - условие
    >> и -> - непонятно что означают
    return - похоже что заканчивает условие
    cMgr - странно ни с чем не ассациируется
    Вродебы покачто всё

    #include - подключение библиотеки в < > название библиотеки
    void - функция не возвращающая значение
    return - выходит из цикла
    avatar
    KiriX
    Admin
    Admin

    Сообщения : 42
    Очки : 60
    Дата регистрации : 2009-04-15
    Возраст : 32
    Откуда : Петрозаводск

    Re: Операторы

    Сообщение автор KiriX в Пн Май 04, 2009 7:09 pm

    MuTaToR пишет:Думаю будет прогрес если объяснит что какой оператор означает, вот что меня интересует:

    #include - прикрепить файл.
    void - незнаю
    uint(32,8 и тд) - незнаю тож]
    if - условие
    >> и -> - непонятно что означают
    return - похоже что заканчивает условие
    cMgr - странно ни с чем не ассациируется
    Вродебы покачто всё
    uint(32,8 и тд) - незнаю тож - просто указание типа переменной и какого она будет размера. Для понимания кода в общем-то не очень важно.
    >> и -> - непонятно что означают - первое не помню, а вот второе - это получить что-то конкретное из, так сказать, массива. Например, это может выглядеть так:
    Код:
    unitTarget->isAlive()
    это будет означать, что мы получаем информацию isAlive() (которая, кстати, может быть только или true, или false) для объекта мира unitTarget.
    Код:
    [b]uint32 entry = unitTarget->GetEntry();[/b]
    Означает, что мы записываем в переменную entry целое 32-битное значение, которое получаем так:
    берём объект мира unitTarget и именно из него(->) получаем значение GetEntry().
    avatar
    KiriX
    Admin
    Admin

    Сообщения : 42
    Очки : 60
    Дата регистрации : 2009-04-15
    Возраст : 32
    Откуда : Петрозаводск

    Re: Операторы

    Сообщение автор KiriX в Пн Май 04, 2009 7:09 pm

    DeusEx пишет:
    MuTaToR пишет:Думаю будет прогрес если объяснит что какой оператор означает, вот что меня интересует:

    #include - прикрепить файл.
    void - незнаю
    uint(32,8 и тд) - незнаю тож]
    if - условие
    >> и -> - непонятно что означают
    return - похоже что заканчивает условие
    cMgr - странно ни с чем не ассациируется
    Вродебы покачто всё
    uint(32,8 и тд) - незнаю тож - просто указание типа переменной и какого она будет размера. Для понимания кода в общем-то не очень важно.
    >> и -> - непонятно что означают - первое не помню, а вот второе - это получить что-то конкретное из, так сказать, массива. Например, это может выглядеть так:
    Код:
    unitTarget->isAlive()
    это будет означать, что мы получаем информацию isAlive() (которая, кстати, может быть только или true, или false) для объекта мира unitTarget.
    Код:
    uint32 entry = unitTarget->GetEntry();
    Означает, что мы записываем в переменную entry целое 32-битное значение, которое получаем так:
    берём объект мира unitTarget и именно из него (->) получаем значение GetEntry().

    MuTaToR

    Сообщения : 11
    Очки : 15
    Дата регистрации : 2009-04-30

    Re: Операторы

    Сообщение автор MuTaToR в Вт Май 05, 2009 8:49 pm

    FreeMan пишет:
    MuTaToR пишет:Думаю будет прогрес если объяснит что какой оператор означает, вот что меня интересует:[size=9

    #include - прикрепить файл.
    void - незнаю
    uint(32,8 и тд) - незнаю тож]
    if - условие
    >> и -> - непонятно что означают
    return - похоже что заканчивает условие
    cMgr - странно ни с чем не ассациируется
    Вродебы покачто всё

    #include - подключение библиотеки в < > название библиотеки
    void - функция не возвращающая значение
    return - выходит из цикла
    Можно поподробней о void? Можно привести пример для него?
    И для чего ещё нужен bool

    FreeMan
    Модератор
    Модератор

    Сообщения : 18
    Очки : 26
    Дата регистрации : 2009-04-19
    Откуда : Беларусь, Минск

    Re: Операторы

    Сообщение автор FreeMan в Вт Май 05, 2009 9:25 pm

    MuTaToR пишет:
    FreeMan пишет:
    MuTaToR пишет:Думаю будет прогрес если объяснит что какой оператор означает, вот что меня интересует:[size=9

    #include - прикрепить файл.
    void - незнаю
    uint(32,8 и тд) - незнаю тож]
    if - условие
    >> и -> - непонятно что означают
    return - похоже что заканчивает условие
    cMgr - странно ни с чем не ассациируется
    Вродебы покачто всё

    #include - подключение библиотеки в < > название библиотеки
    void - функция не возвращающая значение
    return - выходит из цикла
    Можно поподробней о void? Можно привести пример для него?
    И для чего ещё нужен bool

    Есть функция, которая после своего выполнения возвращает значение, которое можно присвоить какой либо переменной, в конце функции пишется return a; ( возвращает значение переменной а, которая была получени в ходе выполнения функции).
    void - не возвращает никаких значений, но может работать с переменными из основной программы изменяя их значение.
    bool - тип переменной, который имеет два значение true/false , тоесть да/нет (при объявлении типа переменной под неё резервируется место в памяти, если переменная будет использоватся в роле переключателя, то таким образом экономится память).

    Особо не ругайте, если что неточно написал, сам знаю только основы С++
    avatar
    KiriX
    Admin
    Admin

    Сообщения : 42
    Очки : 60
    Дата регистрации : 2009-04-15
    Возраст : 32
    Откуда : Петрозаводск

    Re: Операторы

    Сообщение автор KiriX в Вт Май 05, 2009 9:51 pm

    FreeMan пишет:Особо не ругайте, если что неточно написал, сам знаю только основы С++
    Тут пока все такие, так что всё ок =)
    avatar
    palemupro

    Сообщения : 5
    Очки : 5
    Дата регистрации : 2009-04-21
    Возраст : 28
    Откуда : пос.Белоозёрский

    Re: Операторы

    Сообщение автор palemupro в Ср Май 06, 2009 3:34 pm

    uint это вроде неизветное значение употребляющееся несколько раз

    danbst

    Сообщения : 6
    Очки : 8
    Дата регистрации : 2009-04-16

    Re: Операторы

    Сообщение автор danbst в Ср Май 06, 2009 5:40 pm

    мдаа.. незнание основ сплюсплюс... тяжело будет вам патчи писать )))

    #include бывает в двух вариантах.
    Первый: #include <filename> (или #include <filename.h> в некоторых случаях) - подключить файл из стандартной библиотеки компилятора. Самые исползуемые - #include <iostream> (работа со строками), #include <conio.h> (ф-ия getch() и другие для работы с консолью)
    Второй: #include "filename.h" - подключить файл из текущей папки. Тоесть поиск файла происходит в текущей директории

    void - тип, если указана переменная - то она может быть любого типа фактически, если указана ф-ия - то не обязательно возвращать значение (пишем в ф-ии return; а не return 0;)
    uint(32,8 и тд) - u означает unsigned, тоесть без знака, только положительные числа; 32,8,16,64 - количество битов. Вот эти типы:
    Код:
    typedef ACE_INT64 int64;
    typedef ACE_INT32 int32;
    typedef ACE_INT16 int16;
    typedef ACE_INT8 int8;
    typedef ACE_UINT64 uint64;
    typedef ACE_UINT32 uint32;
    typedef ACE_UINT16 uint16;
    typedef ACE_UINT8 uint8;
    если искать далее эти новые типы - то приходим к
    Код:
    #if defined (ACE_INT32_TYPE)
      typedef ACE_INT32_TYPE        ACE_INT32;
    #elif defined (ACE_HAS_INT32_T)
      typedef int32_t              ACE_INT32;
    #elif ACE_SIZEOF_INT == 4
      typedef int                  ACE_INT32;
    #elif ACE_SIZEOF_LONG == 4
      typedef long                  ACE_INT32;
    #else
    # error Have to add to the ACE_INT32 type setting
    #endif /* defined (ACE_INT32_TYPE) */
    тут все сложно для понимания, но просто для использования

    >> и << - в разных контекстах означают разное.
    Первый: 1 << 4 - это побитовый сдвиг влево, тоесть домножение числа на 2^4 степени. 64 >> 2 - сдвиг вправо, деление на 2^2
    Второй: data << uint32(40); - потоковая запись. Для понимания сути потока нужно прочитать первую главу по С++ (практически в каждой книге). оператор << - дописать в поток data новое число uint32(40). Преимущество - можем записывать в поток РАЗНЫЕ типы прчем в одной строчке, вот пример data << uint32(40) << bool(true) << "happy" << float(10.5f) << 45.0f; и не парится много. Считывание из потока ничем не сложнее, data >> length >> isAvaliable >> happ_string; где length, isAvaliable, happ_string - переменные.

    -> - операция взятия методы или поля класса, НО перменная класа, из которой мы берем - указатель!
    Тоесть, такой код правильный
    Код:
    Сreature* myCreature;
    myCreature->SetVisibility(false);
    а такой - НЕправильный
    Код:
    Сreature myCreature;
    myCreature->SetVisibility(false);
    в последнем случае нужно сделать так
    Код:
    Сreature myCreature;
    myCreature.SetVisibility(false);
    Если у вас указатель - используйте "->", если не указатель - точку "."

    >>>return - выходит из цикла
    Неет! Из цикла выходит break; ! а return выходит из ф-ии! Если тип ф-ии не void, то нужно еще дописать возвращаемое значение
    Код:
    float MySQRT(float myVal)
    {
        return float(sqrt(myVal));
    }

    Лучше книгу какую-то маленькую сперва прочитайте. Потому-что на самых элементарных ошибках будете загибатся при написании патчей!

    Спонсируемый контент

    Re: Операторы

    Сообщение автор Спонсируемый контент


      Текущее время Вс Ноя 18, 2018 2:41 am