SORU
8 NİSAN 2014, Salı


Mu &; [ bu ] " ne" C yani

Cocos2dx 3.0 API okurken, şöyle bir şey buldum:

auto listener = [this](Event* event){
    auto keyboardEvent = static_cast<EventKeyboard*>(event);
    if (keyboardEvent->_isPressed)
    {
        if (onKeyPressed != nullptr)
            onKeyPressed(keyboardEvent->_keyCode, event);
    }
    else
    {
        if (onKeyReleased != nullptr)
            onKeyReleased(keyboardEvent->_keyCode, event);
    }
};

[this] ne anlama geliyor? Bu C 11 Yeni sözdizimi.

CEVAP
8 NİSAN 2014, Salı


[Bu] ne demek?

lambda - çağrı işlevi bir nesne sunar. Parantez içinde this koymak lambda anlamına geliryakalarthis, bu nesnenin bu üyeler içinde kullanılabilir. Lambda bağlı sayfanın açıklandığı gibi yerel değişkenler, değer ya da referans ile yakalayın.

Lambda operator(), çağrılabilir, böylece bir fonksiyon gibi aşırı yüklenme vardır:

Event * event = some_event();
listener(event);

kod lambda gövdesi içinde tanımlanan çalışacak.

Bu C 11 yeni bir sözdizimi.

Evet.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011

İLGİLİ SORU / CEVAPLAR