C/C++

C++, using, помогите пожалуйста

Namespace Boo
{
using namespace Boo;

int doOperation(int a, int b)
{
return a + b;
}
}
что озночает using??
Роман Усачев
Роман Усачев
1 016
#include <iostream>
namespace abc {
int func(int a, int b) {
return a + b;
}
}
namespace def {
int func(int a, int b) {
return a * b;
}
}
int main() {
int a = 5;
int b = 7;
std::cout
<< "sum: " << abc::func(a, b) << '\n'
<< "mul: " << def::func(a, b) << '\n';
}
Айдос ***********
Айдос ***********
57 670
Лучший ответ
Указывает, что данное пространство имен работает по умолчанию и его указывать не нужно в каждом обращении к идентификаторам
Да в данном коде он лишний какой-то.
Андрей Кот
Андрей Кот
92 464
Роман Усачев а что это вообще?
В языке с++ есть множество пространств имен со своими переменными и предварительными объявлениями чего либо ( функций, внешних переменных). Мы также можем создавать свои пространства имен. Они созданы для того, чтобы избежать конфликта одинаковых имен.
Так как эти переменные определены внутри этого пространства имен, то их область видимости ограничена именно этим пространство имен и чтобы нам можно им было воспользоваться переменной из этого пространства, нужно указывать указать компилятору из какого именно.

Например у нас есть пространство имен под именем hello. Пространство имен обозначается ключевым словом namespace:

namespace hello
{
int x=21;
{
Если мы захотим использовать эту переменную, нам нужно будет обратиться в пространство имен с помощью оператора доступа :: и писать следующее каждый раз, как только мы захотим воспользоваться этой переменной x из пространства имен hello:
hello::x

Но так как это порой неудобно, существует специальное слово using, который говорит компилятору "'даю право на использование всех объектов из пространства имен"
using namespace hello;

и мы можем обращаться к переменной x без использования оператора доступа :: .
То есть
std::cout<<x<<std::endl;
более подробно на ravesli.com