Using Namespace ?

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

  1. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Код (Text):
    #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

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

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

    Normann Well-Known Member

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

    Kmet Well-Known Member

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

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

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

    Normann Well-Known Member

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

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

    Normann Well-Known Member

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

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

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

    Normann Well-Known Member

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

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

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

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