我是C ++的新手并使用命名空间,我无法在这里看到我做错了什么。当我编译下面的代码时,我收到错误:
error: 'Menu' has not been declared
这是我的头文件Menu.hpp
#ifndef MENU_H //"Header guard"
#define MENU_H
namespace View
{
class Menu
{
void startMenu();
};
}
#endif
和我的Menu.cpp:
#include "stdio.h"
using namespace std;
namespace View
{
void Menu::startMenu()
{
cout << "This is a menu";
}
}
答案 0 :(得分:4)
您错过了包含定义类的头文件。
<强> Menu.cpp:强>
#include "Menu.hpp"
每个 translation unit 由编译器单独编译,如果您不在Menu.cpp
中包含头文件,编译器无法知道Menu
1}}是。
答案 1 :(得分:3)
您必须在cpp文件Menu.hpp
中添加标题Menu.cpp
,例如
#include "Menu.hpp"