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

  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007

İLGİLİ SORU / CEVAPLAR