【发布时间】:2014-01-19 12:09:35
【问题描述】:
经过大量努力,我可以(详情在这里FLTK version 1.3.2, Visual studio 2012 and the first example of Stroustrup's PPP book)运行以下代码;
#include <Simple_window.h>
#include <Graph.h>
//*********************************************
int main()
{
using namespace Graph_lib;
Point tl(100,100);
Simple_window win(tl,600,400,"Canvas");
Graph_lib::Polygon poly;
poly.add(Point(300,200));
poly.add(Point(350,100));
poly.add(Point(400,200));
win.attach(poly);
win.set_label("Canvas");
win.wait_for_button();
}
但是对于Polygon poly;,我应该使用Graph_lib::,而由于我在代码主体的顶部(就在main函数下方)添加了语句using namespace Graph_lib;,所以应该不需要使用多边形的Graph_lib::。但实际上不使用它我得到 ambiguous symbol 错误。即使我删除了该声明(using namespace Graph_lib;),我也没有收到任何错误。我的问题是,为什么该语句不适用于该代码,而我必须使用 Graph_lib::?
【问题讨论】:
-
全局命名空间中可能还有另一个
Polygon符号? -
全局命名空间是什么意思?
标签: c++ namespaces