SORU
29 HAZİRAN 2009, PAZARTESİ


Varsayılan C referans geçerken bir parametre için değer

Referans ile parametre aktarımı sırasında bir fonksiyon bir parametre için varsayılan bir değer vermek mümkün. C

Gibi bir işlev bildirmek istediğimde örneğin:

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);

Bunu yaptığımda bir hata veriyor:

error C2440: 'varsayılan argüman' : 'int' 'imzasız uzun &'dönüştürmek İçin bir başvuru 'sabit' non-lvalue . bir bağlı

CEVAP
29 HAZİRAN 2009, PAZARTESİ


Olmayan sabit bir sabit bir referans değil ama yapabilirsin. Bu bir C geçici (bu durumda varsayılan değer) olmayan sabit ilişkilendirilmelidir izin vermiyor çünkü.

Bir şekilde bu varsayılan olarak gerçek bir örneği kullanmak olacaktır yuvarlak:

static int AVAL = 1;

void f( int & x = AVAL ) {
   // stuff
} 

int main() {
     f();       // equivalent to f(AVAL);
}

ama bu çok sınırlı bir pratik faydası yoktur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • LAHWF

    LAHWF

    5 Kasım 2009
  • TopOfTheTech

    TopOfTheTech

    5 NİSAN 2010