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

  • infodirt

    infodirt

    11 Mart 2009
  • njhaley

    njhaley

    24 NİSAN 2006
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013

İLGİLİ SORU / CEVAPLAR