私は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()