为什么我不能使用两个 .h 文件?
Why can't I use two .h file?
当我在 #include "Anna.h"
上面执行 #include "George.h"
然后 using namespace Anna;
时,它会给我一个错误 'expected namespace name' 和 'unknown type Human, you mean Anna::Human?',但是如果我输入 #include "Anna.h"
以上#include "George.h"
,一切正常
所以我想我的问题是我不能包含两个头文件。但为什么?我正在学习 udemy 课程,老师的代码工作正常。
#include <iostream>
#include "Anna.h"
#include "George.h"
using namespace std;
using namespace George;
int main()
{
Human human1;
human1.talk();
return 0;
}
这是Anna.h代码:
#ifndef HUMAN_H
#define HUMAN_H
namespace Anna
{
class Human
{
public:
Human();
void talk();
~Human();
};
}
#endif // HUMAN_H
这是George.h代码:
#ifndef HUMAN_H
#define HUMAN_H
namespace George
{
class Human
{
public:
Human();
void talk();
~Human();
};
}
#endif // HUMAN_H
在 Anna 中,将 HUMAN_H
更改为 ANNA_HUMAN_H
,在 George 中,将 HUMAN_H
更改为 GEORGE_HUMAN_H
我还没有对此进行测试,但从评论(和我自己的推理)来看,这是错误的
当我在 #include "Anna.h"
上面执行 #include "George.h"
然后 using namespace Anna;
时,它会给我一个错误 'expected namespace name' 和 'unknown type Human, you mean Anna::Human?',但是如果我输入 #include "Anna.h"
以上#include "George.h"
,一切正常
所以我想我的问题是我不能包含两个头文件。但为什么?我正在学习 udemy 课程,老师的代码工作正常。
#include <iostream>
#include "Anna.h"
#include "George.h"
using namespace std;
using namespace George;
int main()
{
Human human1;
human1.talk();
return 0;
}
这是Anna.h代码:
#ifndef HUMAN_H
#define HUMAN_H
namespace Anna
{
class Human
{
public:
Human();
void talk();
~Human();
};
}
#endif // HUMAN_H
这是George.h代码:
#ifndef HUMAN_H
#define HUMAN_H
namespace George
{
class Human
{
public:
Human();
void talk();
~Human();
};
}
#endif // HUMAN_H
在 Anna 中,将 HUMAN_H
更改为 ANNA_HUMAN_H
,在 George 中,将 HUMAN_H
更改为 GEORGE_HUMAN_H
我还没有对此进行测试,但从评论(和我自己的推理)来看,这是错误的