使用命名空间时出错 - 未声明类

时间:2013-08-25 06:03:24

标签: c++ namespaces

我是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";
    }
}

2 个答案:

答案 0 :(得分:4)

您错过了包含定义类的头文件。

<强> Menu.cpp:

#include "Menu.hpp"

每个 translation unit 由编译器单独编译,如果您不在Menu.cpp中包含头文件,编译器无法知道Menu 1}}是。

答案 1 :(得分:3)

您必须在cpp文件Menu.hpp中添加标题Menu.cpp,例如

#include "Menu.hpp"