我在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