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

  • Missouri Star Quilt Company

    Missouri Sta

    18 ŞUBAT 2009
  • mliskIT

    mliskIT

    29 Mart 2012
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010