C++ 如何在vc+中的另一个项目的另一个文件中包含名称空间+;?
我在VisualStudio中有一个C++项目。 在源文件中,我在其中创建了一个名称空间和一个类。 现在,我在同一个解决方案中添加了另一个项目。 在新项目中,我尝试使用以前声明的名称空间。 它不允许我这样做。 它抛出一个编译器错误,提示“名称必须是命名空间名称”。 如何使用它 在源文件中,我在那里创建了一个名称空间和一个类 里面 您应该在头文件(C++ 如何在vc+中的另一个项目的另一个文件中包含名称空间+;?,c++,visual-studio,visual-c++,C++,Visual Studio,Visual C++,我在VisualStudio中有一个C++项目。 在源文件中,我在其中创建了一个名称空间和一个类。 现在,我在同一个解决方案中添加了另一个项目。 在新项目中,我尝试使用以前声明的名称空间。 它不允许我这样做。 它抛出一个编译器错误,提示“名称必须是命名空间名称”。 如何使用它 在源文件中,我在那里创建了一个名称空间和一个类 里面 您应该在头文件(.h或.hpp)而不是源文件(.cpp)中执行此操作。然后,在另一个项目中,可以使用以下命令包含该头文件: #include "path_of_the_
.h
或.hpp
)而不是源文件(.cpp
)中执行此操作。然后,在另一个项目中,可以使用以下命令包含该头文件:
#include "path_of_the_header/xxx.h" // e.g #include "../../include/proj1/xx.h"
这样,另一个项目将能够看到名称空间及其内部的类。在头文件中:
#ifndef _XXX_H_
#define _XXX_H_
您通常会在将要使用方法的位置包含标题 标题的来源是什么意思。你能给我举个例子吗?“标题的来源”我没这么说?什么不清楚?#包括“标题的来源/xxx.h”标题的来源是什么?哦,对不起!headerInside MyHeader.h的路径我已经编写了名称空间My{}现在在另一个项目中我正在尝试这样做#包括“MyHeader.h”这是不允许的,包括保护应该完全进入头文件。是的,这就是我写的,不是吗?:)@PedroG.Dias不,您建议在包含头文件之前,先将
#ifndef(如果没有)放入头文件中,此语句应该放在头文件中。首先,您的问题没有解决(描述不好的)问题。其次,您定义了保留的宏,而不应该这样做。第三,整个#ifdef
、#define
和#endif
三个部分都应该放在头文件中。抱歉,编辑了答案:)谢谢您的更正