我正在为一个类的项目工作,用 C++ 编写。尝试构建代码时,我不断收到一个奇怪的错误,说符号未在其范围内声明。这可能是一个简单的解决方法,但我在论坛上找不到,并且对 c++ 了解不足,无法自行解决。这是代码:
#include "Menu.h"
#include "MovieCollection.h"
#include "Movie.h"
Menu::Menu() {
MovieCollection mc("Collection.txt");
}
void Menu::displayTopMenu(){
MovieCollection mc("Collection.txt");
cout<<"Press:\n"<<
"1- To list all movies\n"<<
"2- To search by title\n"<<
"3- To search by year\n"<<
"4- To search by Director\n"<<
"5- To add a movie to the collection\n"
"6- to remove a movie from the collection\n"
"0- To exit the program\n";
}
void displaysub1(){
mc.listAll();
// This is the bit that gives me the "out of scope" error
}
这里还有 Menu.h 文件……
#ifndef MENU_H_
#define MENU_H_
#include "Movie.h"
#include "MovieCollection.h"
#include <iostream>
using namespace std;
class Menu {
public:
Menu();
void displayTopMenu();
void displaysub1();
};
#endif /* MENU_H_ */
消息是这样的:此行有多个标记 - 'mc' 未在此范围内声明 - 符号 'mc' 无法解析 - 方法 'listAll' 无法
另外,我尝试声明MovieCollection mc
为私有实例变量;变化不大
发现问题:我想让每种方法都作为Menu::displaysub1()