Invalid use of qualified name

c++, qualified-name

Solution

Please explain why this error occurred?

The language simply doesn't allow you to define namespace-scope variables inside functions. The definition has to be either in `namespace A`:

namespace A {
    int j = 5;
}

or in the surrounding (global) namespace:

int A::j = 5;

You can, of course, assign a value to the variable inside the function:

int main() {
    A::j = 5;
    // ...
}

but you'll also need a definition somewhere, since your program doesn't have one.

Problem

I'm trying the following: ``` #include <iostream> namespace A { extern int j; } int main() { int A::j=5; std::cout << A::j; } ``` But I've `error: invalid use of qualified-name ‘A::j’`. Please explain why this error occurred?

Original source