SORU
2 NİSAN 2015, PERŞEMBE


hata:-eski tarz temel sınıf başlatıcı çağdışı

Aşağıdaki kodu C 98 C 11 ve C 14 modlarında denedim GCC sürümleri, sonraki derleme hatası üretir:

struct T
{
    T(void* x) : (x) {}
};

// main.cpp: In constructor 'T::T(void*)':
// main.cpp:3:18: error: anachronistic old-style base class initializer [-fpermissive]
//      T(void* x) : (x) {}
//                   ^
// main.cpp:3:16: error: unnamed initializer for 'T', which has no base classes
//      T(void* x) : (x) {}

Tabii, aslında hiçbir şey başlatılıyor değilim çünkü açık kod bozuldu.

Ama neden taban sınıf bir initialiser ve neden "" yerine, basitçe yanlış? çağdışı Oldu bir kere geçerli? Ne zaman? Ve bunu derken ne demek istedin?


Bu only related references buldum için bu web etmiş insanlar geliyor karşısındaki hata ne zaman bir üye adı vardı yanlışlıkla makro......, etkili sonuç aynı kodu yukarıdaki gibi:

#define bar
// ^ some library could have done this

struct T
{
    T(int x)
        : bar(x)   // effectively just `: (x)`
    {}

    int bar;       // will cause its own error
};

Bu insanlar asla onlar daha sonra kendi programı kırıldı neden en az keşfedilmiş olsa da bu hata ne anlama geldiğini bulamadım.

CEVAP
2 NİSAN 2015, PERŞEMBE


CFront, ilk C compiler: 1984-5 serbest bırakılması için bu belgeleri bulundu

Kapsam çözümleme operatörü :: sonsuz özyineleme yakalandığını kazandıktan çağırarak önlemek için kullanılır::elem() kendisi (tekli :: genel adları bakınız) için kullanılır.

Kurucu aşağıdaki gibi yazılabilir:

  vec.vec(int lb, int hb) : (hb-lb 1)
  {
      if (hb-lb<0) hb * lb
      low = lb;
      high = hb; 
  }

Yapı : (hb-1 lb) bağımsız değişken listesi belirtmek için temel sınıf yapıcı vektör için gerekli kullanılır().

Mantıklı, eğer düşünürsen. Muhtemelen temel sınıf açık adlandırma çoklu kalıtım desteği eklendi.

Kredi 8 ** belgeleri arşivlemek için.

...ve Vay besadece şimdi"CFront" kelime oyunu vardı. bunu fark ettim

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • Randall P Studios

    Randall P St

    27 AĞUSTOS 2009
  • Watcher3223

    Watcher3223

    15 Kasım 2007