Квалифицированные имена, такие как something::someting_else
в C ++, могут использоваться только для ссылки на объекты, которые уже были объявлены ранее.Вы не можете использовать такие имена, чтобы ввести что-то ранее неизвестное.Даже если вложенное пространство имен уже было объявлено ранее, расширение этого пространства имен также рассматривается как «введение чего-то нового», поэтому полное имя не допускается.
Такие имена можно использовать для определения функций, ранее объявленных в пространстве имен.
namespace foo {
namespace bar {
int baz();
}
}
// Define
int foo::bar::baz() {
/* ... */
}
, но не объявлять новые пространства имен для расширения существующих.