SORU
27 Temmuz 2012, Cuma


Neden bu varsayılan yapıcı değil mi?

struct X
{
    X()    { std::cout << "X()\n";    }
    X(int) { std::cout << "X(int)\n"; }
};

const int answer = 42;

int main()
{
    X(answer);
}

Yazdırmak için bu da beklerdim

  • X(answer); X int dökme olarak yorumlanabilir çünkü X(int) ya
  • X(answer); değişken Deklarasyonu olarak yorumlanabilir çünkü hiç, hiçbir şey.

Ancak it prints X() ve X(answer); varsayılan kurucusunu çağırmak olurdu neden hiçbir fikrim yok.

BONUS PUAN: ben değiştirmek için bir değişken bildirimi bir geçici yerine almak için Ne yapardınız?

CEVAP
27 Temmuz 2012, Cuma


hiç, X(cevap) çünkü; hiçbir şey bir değişken Deklarasyonu olarak yorumlanabilir.

Cevabın burada gizli. Eğer bir değişken bildirirseniz, varsayılan decimal non-POD ve diğer şeyler () çağırır.

Senin edit: geçici bir almak İçin birkaç seçeneğiniz vardır:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • njhaley

    njhaley

    24 NİSAN 2006
  • The Onion

    The Onion

    14 Mart 2006