我在C++的第一步中苦苦挣扎。已经问过this的问题,但没有得到有关名称空间的完整答案。在Visual C++中使用不同文件和不同名称空间中的函数
我做了以下事情。
- 在Visual Studio 2015年创建时的空项目(New Project - > VISUAL C++ - >空项目)
- 然后我Source.cpp和PrintFunc.cpp其相应的内容如下添加两个文件。
Source.cpp
#include <iostream>
using namespace std;
int PrintHello();
extern int tempCount;
void main()
{
int i;
PrintHello();
cout << tempCount << endl;
cout << "Hello from main" << endl;
}
PrintFunc.cpp
#include <iostream>
using namespace std;
int tempCount = 111;
int PrintHello()
{
cout << "Hello from Source1" << endl;
return 0;
}
这是完全编译。 现在我正在学习命名空间,所以我只是尝试将第二个文件的内容放在命名空间中,如下所示。
PrintFunc.cpp(修改)
#include <iostream>
using namespace std;
namespace MyNameSpace
{
int tempCount = 111;
int PrintHello()
{
cout << "Hello from Source1" << endl;
return 0;
}
}
现在我修改了Source.cpp也反映在之前的片段的命名空间的介绍。
#include <iostream>
using namespace std;
int MyNameSpace::PrintHello();
extern int MyNameSpace::tempCount;
void main()
{
int i;
PrintHello();
cout << tempCount << endl;
cout << "Hello from main" << endl;
}
这根本就不编译。有人请善意纠正我。我的目标是在C++中理解命名空间概念。我也有很好的C#。
你从全局命名空间调用它们。试试'MyNameSpace :: PrintHello();''或者你可以使用命名空间MyNameSpace来编写''但是那么即使命名空间在第一位也没用...... – DeiDei