Беда с Полигоном в книге ГЧП Страуструпа

Я читаю Принципы и практику программирования с использованием C ++, СтрауструпаКнига В главе 12 и на странице 441 есть этот код:

//
// This is example code from Chapter 12.3 "A first example" of
// "Programming -- Principles and Practice Using C++" by Bjarne Stroustrup
//

#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
}

//------------------------------------------------------------------------------

Когда я запускаю код, я получаю 13 ошибок, из которых должны бытьмногоугольник идентификатор. Например, первая ошибка:Ошибка C2872: 'Полигон» : неоднозначный символ

Почему мой компилятор нене знаю, чтомногоугольник пожалуйста?

 Mike Seymour07 янв. 2014 г., 16:04
@abbasi: это означает, что либо у вас нетт реализованоGraph_lib::Window::draw(), или ты'не связываться с файлом или библиотекой, содержащей реализацию.
 abbasi07 янв. 2014 г., 16:21
ОК, что мне теперь делать?
 Mike Seymour07 янв. 2014 г., 15:09
Возможно, тамтип с этим именем в глобальном пространстве имен иnamespace Graph_libи директива using вызывает неоднозначность. Если это'в этом случае используйте полное имя::Polygon или жеGraph_lib::Polygonв зависимости от того, что вы хотите.
 drescherjm08 янв. 2014 г., 20:05
Хорошо. Я нашел код из книги, о которой вы говорите. В любом случае вы должны убедиться, что Window.cpp находится в проекте, который вы строите, чтобы получить реализацию Graph_lib :: Window :: draw (). Также вы должны связаться с библиотекой fltk, которая представлена в источниках.
 drescherjm08 янв. 2014 г., 16:17
Также на исходную проблему теперь правильно ответил Влад из Москвы.
 Peter Bloomfield07 янв. 2014 г., 15:03
У вас есть заголовок (.h) файлы?
 drescherjm07 янв. 2014 г., 14:59
Где определяется полигон? У меня нет этой книги.
 abbasi07 янв. 2014 г., 16:03
@Mike: я использовалGraph_lib :: Polygon но получил 11 разных ошибок. Первая ошибка заключается в следующем: Ошибка LNK2001: неразрешенный внешний символ "protected: virtual void __thiscall Graph_lib :: Window :: draw (void) " (? draw @ Window @ Graph_lib @@ MAEXXZ) C: \ Users \ CS \ Documents \ visual studio 2012 \ Проекты \ testv \ testv \ testv.obj
 drescherjm07 янв. 2014 г., 19:09
Посмотри, что сказал Майк. Реализован ли Graph_lib :: Window :: draw ()? Если это вы связываетесь с библиотекой, содержащей Graph_lib, или это файл c ++, который реализует Graph_lib :: Window :: draw, включенный в ваш проект.
 abbasi07 янв. 2014 г., 15:56
@Peter: у меня есть все файлы заголовков ("Simple_window.h» & "Graph.h») упоминается в коде в моем каталоге include.
 abbasi07 янв. 2014 г., 20:07
Хорошо, но как реализоватьGraph_lib :: Window :: ничья ()? Или как связать эту библиотеку? Я добавил эту библиотеку в каталог include.
 drescherjm08 янв. 2014 г., 16:10
Это'Очень трудно помочь без книги или, по крайней мере, всего кода, который включен.
 abbasi08 янв. 2014 г., 08:40
Нет ответа на эту проблему !?

Ответы на вопрос(1)

Graph_lib::Polygon poly;
 abbasi11 янв. 2014 г., 15:21
Хорошо, я ищу в Интернете, как правильно установить версию 1.3.2 fltk на Visual Studio 2012. Но я неЯ думаю, что я установил его неправильно.
 abbasi11 янв. 2014 г., 15:15
Единственная проблема с установкой заключается в том, что я скачал и использовалFLTK-1.3.2-источник но на его сайте естьfltk- 1.1.9-source версия. Мне лучше установить 1.1.9 вместо 1.3.2?
 Vlad from Moscow11 янв. 2014 г., 12:59
Кажется, что компоновщик не видит библиотеку Graph, где есть определения функций. Вы должны быть уверены, что вы правильно указали пути к библиотекам в вашем проекте.
 Vlad from Moscow11 янв. 2014 г., 15:16
Я думаю, что лучше установить последнюю версию FLTK. Только вы должны выяснить, как это сделать.
 Vlad from Moscow11 янв. 2014 г., 13:55
Я думаю, что кроме заголовков должны быть некоторые библиотечные файлы, которые содержат определения. Вы должны сказать компоновщику, где их искать.
 Vlad from Moscow11 янв. 2014 г., 14:46
Вам необходимо прочитать инструкцию по установке FLTK для данного компилятора.
 abbasi11 янв. 2014 г., 13:51
Что каждый человек делает с заголовочными файлами, так это добавляет их ввключают каталог и после этого компилятор (здесь Visual Studio) читает их. И это именно то, что я сделал, то есть я добавилGraph.h Заголовок ввключают каталог. И я неНе знаю другого способа указания компилятору путей заголовочных файлов. Теперь у меня есть мысль создать файл заголовкаGraph.h»s код и заменить его предыдущимgraph.h заголовочный файл ввключают каталог. Согласен?
 Vlad from Moscow11 янв. 2014 г., 14:54
Вы должны правильно установить FLTK, используя инструкции или описание, представленное на сайте Straustrup.
 abbasi11 янв. 2014 г., 15:04
Нетt любая инструкция по установке FLTK на его веб-сайте, за исключением того, что написано в его книге, напечатанной в 2008 году.
 abbasi11 янв. 2014 г., 14:34
Я нене знаю, как это сделать. И это очень глобальный ответ. В любом случае, спасибо за ваши ответы.
 abbasi11 янв. 2014 г., 10:11
Я использовал этот кодGraph_lib :: Polygon poly; вместо этогоПолигон поли; и запустите код снова. Опять было 11 ошибок, во-первых это: Ошибка 9 Ошибка LNK2001: неразрешенный внешний символ "protected: virtual void __thiscall Graph_lib :: Window :: draw (void) " (? draw @ Window @ Graph_lib @@ MAEXXZ) C: \ Users \ CS \ Documents \ visual studio 2012 \ Projects \ Win32Project1 \ Win32Project1 \ Win32Project1.obj
 abbasi11 янв. 2014 г., 14:49
Другой вопрос; Я хочу прочитатьGraph_lib но нене знаю как. Я думаю, что я должен прочитать и Graph.h и это. Чтение graph.h легко, но оGraph_lib как?
 Vlad from Moscow11 янв. 2014 г., 15:06
Я думаю, что вы можете найти их на сайте, откуда загружается FLTK.

Ваш ответ на вопрос