1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Using Namespace ?

Тема в разделе "С и С++", создана пользователем Normann, 2 июл 2008.

  1. Normann

    Normann Well-Known Member

    Репутация:
    0
    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Код:
    #include <stdio.h>
    
    namespace _overspace
    {
    
    _CRTIMP int __cdecl puts(const char* szSrc)
    {
    return ::puts(szSrc);
    };
    
    } //_overspace
    
    int main(int argc, char *argv[])
    {
    using namespace _overspace;
    puts("start program..."); //выдаст ошибку под названием error C2668: 'puts' : ambiguous call to overloaded function
    
    system("PAUSE");
    return EXIT_SUCCESS;
    
    }
    VC60
    В книжке написано что using namespace можно использовать вместо namespace:: , из-за чего здесь ошибка?
     
  2. Kmet

    Kmet Well-Known Member
    Java Team

    Репутация:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    1.036
    Симпатии:
    8
    не совсем вместо... читайте правильные книги

    в данном случае компилятор не может определить какую функцию вызвать, стандартный puts или _overspace::puts
     
  3. Normann

    Normann Well-Known Member

    Репутация:
    0
    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Я не слепой, сообщеня компилятора читать умею.
    если есть using namespace то согласно написаному
    обращение к имени не должно вызывать конфликтов.
    Вопрос еще раз, из-за чего здесь ошибка? И еще что я не правильно прочитал?
     
  4. Kmet

    Kmet Well-Known Member
    Java Team

    Репутация:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    1.036
    Симпатии:
    8
    как видишь, компилятор другого мнения

    бред,,, читайте правильные книжки,

    при использовании using компилятор будет пытаться разрезолвить индентификторы без префикса не только для "общего" нэймспэса, но и для всех нэймспэсов указанных через using для данной области видимости
     
  5. Normann

    Normann Well-Known Member

    Репутация:
    0
    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    С.В.Глушаков А.В.Коваль С.В.Смирнов "Язык программирования C++" (2001г.)

    Тогда дайте ссылку на правиьных авторов.
     
  6. Normann

    Normann Well-Known Member

    Репутация:
    0
    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    А че, типа русских авторов нету чтоли? Я не владею английским на столько чтобы просто так вот читать книги на нем.
     
  7. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Русские авторы хороши только для написания книг из раздела "для чайников". Читайте переводы гуру С++

    Саттер, Майерс, Александреску, Липпман
     
  8. Normann

    Normann Well-Known Member

    Репутация:
    0
    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Ну мало ли кто там че кидает.

    Да, точно, пардон, я выразился не правильно.

    Спасибо. А за державу обидно.
     
Загрузка...

Поделиться этой страницей