Nasıl geçici izin vermemek için | Netgez.com
SORU
31 EKİM 2012, ÇARŞAMBA


Nasıl geçici izin vermemek için

Bir sınıf Foo için, isim vermeden inşa izin vermemek için bir yolu var mı?

Örneğin:

Foo("hi");

Ve sadece sana bir isim versem izin, aşağıdaki gibi mi?

Foo my_foo("hi");

Bir ömür boyu sadece bir deyim olduğunu, ve ikincisi kapsayan taşıdır. Benim kullanım durumunda, Foo yapıcı ve yıkıcı arasındaki zaman ölçme. Ben asla yerel değişken gösterdiğine göre, ben sık sık onu koymak, ve yanlışlıkla ömür boyu değiştirmek unutmayın. Bir kez hata yerine derlemek istiyorum.

CEVAP
31 EKİM 2012, ÇARŞAMBA


Makro tabanlı başka bir çözüm:

#define Foo class Foo

Deyim Foo("hi"); kötü oluşan class Foo("hi");, genişler; ama Foo a("hi") doğru olan class Foo a("hi"), genişler.

Bu kaynak ve ikili uyumlu mevcut (doğru) her iki kodu bir avantaja sahiptir.(Bu iddia tamamen doğru - lütfen Johannes Schaub Yorum ve ardından gelen tartışma aşağıya bakın: . ben^>"Nasıl mevcut kaynak kodu ile uyumlu olduğunu biliyorsun? Önceden derlenmiş güzel ve miscompiles! şimdi hangi arkadaşını başlık içerir ve void f() { int Foo = 0; } Aynı zamanda, Foo sınıfının bir üye işlevi tanımlayan her satırı başarısız: sınıf void Foo::bar() {}")

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Tina Chen

    Tina Chen

    26 Mayıs 2012
  • William Sledd

    William Sled

    24 EYLÜL 2006