Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
1

Конфликт имён

20.07.2013, 16:57. Просмотров 722. Ответов 4
Метки нет (Все метки)

Добрый день.
При запуске программы возникает следующая ошибка:
d:\study\programming\myprojects\fltk_project\fltk_project\main.cpp(19): error C2872: Polygon: неоднозначный символ
может быть "c:\program files (x86)\windows kits\8.0\include\um\wingdi.h(4972) : BOOL Polygon(HDC,const POINT *,int)"
или "d:\study\programming\myprojects\fltk_project\fltk_project\graph.h(229) : Graph_lib::Polygon"
Сейчас изучаю книгу Страуструпа "Программирование. Принципы и практика использования C++ ", дело дошло до графики с использованием библиотеки FLTK и некоторых доп. файлов, написанных автором. Данная ошибка возникла при попытке запуска первого примера:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "Simple_window.h"    // get access to our window library
#include "Graph.h"            // get access to our graphics library facilities
 
//------------------------------------------------------------------------------
 
int main()
{
    using namespace Graph_lib;   // our graphics facilities are in Graph_lib
 
    Point tl(100,100);           // to become top left  corner of window
 
    Simple_window win(tl,600,400,"Canvas");    // make a simple window
 
    Polygon poly;                // make a shape (a polygon)
 
    poly.add(Point(300,200));    // add a point
    poly.add(Point(350,100));    // add another point
    poly.add(Point(400,200));    // add a third point 
 
    poly.set_color(Color::red);  // adjust properties of poly
 
    win.attach (poly);           // connect poly to the window
 
    win.wait_for_button();       // give control to the display engine
}
Но если написать Graph_lib::Polygon poly; то всё запускается без проблем. Подскажите, пожалуйста, как сделать так, чтобы автоматически исключался из рассмотрения второй вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2013, 16:57
Ответы с готовыми решениями:

Конфликт пространств имён
Есть у меня два разных класса, имеющими одно название. И есть другие две...

Конструкторы в списках и конфликт имён
Здравтсвуйте, уважаемые программисты, меня волнуют следующие вопросы: 1) Мне...

Найти причины и способы исправления ошибки (конфликт имён?)
Пишу программу для загрузки пары в стек: #include<iostream> using namespace...

Пространство имён!
Как лучше указывать пространство имён? using namespace std вначале? или ...

пространство имён
Здравствуйте. Из C# я примерно представляю что такое пространство имён. Но...

4
Croessmah
++Ͻ
14743 / 8424 / 1598
Регистрация: 27.09.2012
Сообщений: 20,719
Записей в блоге: 2
Завершенные тесты: 1
20.07.2013, 16:59 2
Цитата Сообщение от PG94 Посмотреть сообщение
Данная ошибка возникла при попытке запуска первого примера:
Написано же:
d:\study\programming\myprojects\fltk_project\fltk_project\ma in.cpp(19): error C2872: Polygon: неоднозначный символ
может быть "c:\program files (x86)\windows kits\8.0\include\um\wingdi.h(4972) : BOOL Polygon(HDC,const POINT *,int)"
или "d:\study\programming\myprojects\fltk_project\fltk_project\g raph.h(229) : Graph_lib::Polygon"
Добавлено через 39 секунд
вот это можно убрать:
C++
1
using namespace Graph_lib;   // our graphics facilities are in Graph_lib
и везде обращаться через пространство имен Graph_lib
1
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
20.07.2013, 17:03  [ТС] 3
Спасибо, но я хотел добиться как раз того, чтобы всё работало со строкой using namespace Graph_lib;
0
castaway
Эксперт С++
4934 / 3039 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
20.07.2013, 17:10 4
Цитата Сообщение от PG94 Посмотреть сообщение
Спасибо, но я хотел добиться как раз того, чтобы всё работало со строкой using namespace Graph_lib;
В данном случае это невозможно.
0
BigLow
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
20.07.2013, 18:12 5
Цитата Сообщение от PG94 Посмотреть сообщение
Но если написать Graph_lib::Polygon poly; то всё запускается без проблем.
вот так и надо писать, а про using namespace-ы лучше вообще забыть
0
20.07.2013, 18:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2013, 18:12

Пространства имён с++
Может я отсталый совсем, но перечислите пожалуйста все известные вам...

Пространство имён
Прочитал сейчас раздел про пространство имён, но так всё равно и не понял,...

Пространство имён
Добрый вечер, 1) как правильно называется часть "Foo::" в этой записи void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru