我阅读了使用C ++的编程原理和实践,Stroustrup的书。在第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个错误,其中必须是 Polygon 标识符。例如,第一个错误是: 错误C2872:'多边形':含糊不清的符号
为什么我的编译器不知道 Polygon ?
答案 0 :(得分:1)
如果符号不明确,请尝试使用其限定名称:
Graph_lib::Polygon poly;
答案 1 :(得分:0)
环境:操作系统:Win 10 Pro 1909,VS 2019 v16.4.5
我正在研究Stroupstrup的 PPP 第二版,并且还收到错误消息“多边形不明确”。
我认为问题与路径有关。当我打开VS 2019的 x64本机工具命令提示符并键入 Path 时,我找到了对 .. \ Program Files(x86)\ Windows Kits的引用\ 10 \ Windows Performance Toolkit \ 。当我在Visual Studio中执行查找文件并在 Visual C ++包含目录中搜索单词多边形时,我得到了35条结果。结果之一是Windows.UI.Xaml.Shapes.0.h头文件中的名为Polygon的结构化变量。该头文件与上述Windows Kits目录位于同一目录中。
假定Visual Studio与VS 2019的 x64本机工具命令提示符加载在相同的路径中,则似乎Visual Studio正在拾取多边形的多个定义。因此,有必要通过指定Graph_lib作为命名空间来解决歧义。
指定名称空间对我来说解决了错误“多边形不明确”。与abbasi不同,我没有从FLTK网站下载FLTK库。相反,我使用vcpkg下载并安装了它。有关安装FLTK的更多信息,请参见我对此Stack Overflow question的回答。