[C++] Trebuie initializate referintele la declarare?

Despre limbajul de programare C++ si biblioteca standard STL (forum moderat)
Post Reply
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

[C++] Trebuie initializate referintele la declarare?

Post by Ovidiu Cucu » 24 May 2011, 15:28

Intrebare
Este obligatoriu sa fie initializate referintele in momentul declararii?

Raspuns
DA, cu exceptia urmatoarelor cazuri:
  1. este declarata 'extern';
  2. este parametrul unei functii;
  3. este tipul de return a unei functii;
  4. este membrul unei clase.

Code: Select all

int i;
int& r1 = i; // OK: reference has been initalized
int& r2;     // Error: references must be initialized

extern int& r3;  // OK: 'extern' specifier has been used [1]
void f1(int& r); // OK: it's a function parameter [2]
int& f2();       // OK: it's a return type [3]
class CFoo
{
   int& r;       // OK: it's a class member [4]
};
Note
  • In cazul [4], referintele trebuie initializate in lista de initializare a constructorilor.
Vezi si



Post Reply