1

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

2 回答 2

4

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

菜单.cpp:

#include "Menu.hpp"

每个翻译单元都由编译器单独编译,如果你不包含头文件Menu.cpp,编译器就无法知道是什么Menu

于 2013-08-25T06:06:47.420 回答
3

您必须Menu.hpp在您的 cpp 文件中包含标头,Menu.cpp例如

#include "Menu.hpp"
于 2013-08-25T06:05:26.430 回答