0

I am doing exercise 2.27 from C++ primer 5th edition and I am confused in this question:

Exercise: Which of the following initializations are legal? Explain why.

(c) const int i = -1, &r = 0;

I came to conclusion that r is illegal because this will be same as below:

const int i = -1;
int &r = 0;

But this github repo suggest that (c) is same as below:

const int i = -1;
const int &r = 0;

So, it contradicts to my answer, please provide me the correct answer.

P.S.: I am begineer in C++ language.

Vlad from Moscow
  • 301,070
  • 26
  • 186
  • 335
silverwolf
  • 31
  • 3

1 Answers1

1

The type specifier (int) with the qualifier (const) belong to all declarators in the declaration

const int i = -1, &r = 0;

Thus declarators i and &r have the type specifier and qualifier const int. Moreover you may not write for example

int &r = 0;

because a temporary object (in this case expression 0) may not be bound to a non-constant reference.

However you could write

int &&r = 0;
Vlad from Moscow
  • 301,070
  • 26
  • 186
  • 335