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

  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010
  • Engadget

    Engadget

    18 EYLÜL 2006
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006