所以,我在规范文件中有以下内容
#include <string>
#include <fstream>
using namespace std:
class MyStuff
{
private:
string name;
fstream file;
// other stuff
public:
void setName(string);
}
我在实现文件中也有
#include "MyStuff.h"
using namespace std;
void MyStuff::setName(string name);
{
name = name
}
在我的程序文件中......
#include <iostream>
#include <string>
using namespace std;
void main()
{
string name;
MyStuff Stuff;
cout << "Enter Your Name: ";
getline(cin, name);
Stuff.setName(name);
}
我正在收集应用“使用命名空间标准;” 在头文件中是禁止的,完全符合条件是“更好”的做法;如std::cout << stuff << endl;
据我了解,为了使用字符串,它必须具有 std 命名空间。真的吗?
如果是这样,在头文件中,更“纯粹/干净”的做法是......
#include <string>
class MyStuff
{
std::string name;
}
而且,据我目前了解,使用命名空间std;在所有三个文件(规范、实现和程序)中,基本上将三个命名空间叠加在一起,所以如果我string name;
在每个文件中分别声明,编译器将不知道哪个到哪个。真的吗?
我一般都明白,清楚是一件“好”的事情,但是我对如何做的具体情况有点不清楚,我最感兴趣的是更深层次的“为什么”是这一切的基础。
所以我的直接问题是,在我提供的示例中,为编译器和行业“标准”描述函数的“最清晰”方式是什么?而且,您能否指导我更清楚地描述命名空间的推理和实际实现的资源。