SORU
2 EKİM 2008, PERŞEMBE


başlatma C sınıfı bir başlatıcı olarak sabit bir dizi

C : aşağıdaki Dersim var

class a {
    const int b[2];
    // other stuff follows

    // and here's the constructor
    a(void);
}

Soru, nasıl b const çünkü kurucu işlev gövdesi içinde başlatmak edemem verilen başlatma listesindeki b başlatılamıyor, anlamak için.

Bu çalışmıyor:

a::a(void) : 
    b([2,3])
{
     // other initialization stuff
}

Edit: farklı örnekleri için b farklı değerleri olabilir, ama değerleri örnek ömrü boyunca sabit olduğu bilinmektedir. nokta davası

CEVAP
18 EKİM 2011, Salı


C 11 ile bu sorunun cevabını şimdi değişti ve aslında yapabilirsiniz:

struct a {
    const int b[2];
    // other bits follow

    // and here's the constructor
    a();
};

a::a() :
    b{2,3}
{
     // other constructor work
}

int main() {
 a a;
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008