Функция-член C++ не объявляет ошибку, когда она кажется

Я получаю ошибки:

cs163hw1.cpp: 41: 24: ошибка: нет функции-члена int menutype::run_prog(), объявленной в классе menutype

а также

main.cpp:18:7: ошибка: "struct menutype" не имеет члена с именем "run_prog"

При попытке скомпилировать мою программу с соответствующим кодом (охватывающим файлы appriprait .cpp и.h):

int main(int argc, char ** argv){
...
menu.run_prog();
...

class menutype{
public:
  menutype(int);
  int display();
  int run_prog();
private:
  extras list;
  person menup;
};

int menutype::run_prog(){
bool exit = false;
int input;
while(!exit){
    input = 0;
    while(input < 1 || input > 4)
        input = display();
    switch(input){
        case 1 : 
            break;
        case 2 :
            break;
        case 3 :
            break;
        case 4 : exit = true;
            break;
        default :
            break;
    }
}
}

Я понятия не имею, почему это происходит, какие-либо догадки?

1 ответ

Вам нужно иметь class menutype объявлено выше main(). Еще лучше переместить класс в собственный выделенный файл с именем menutype.cpp и включить заголовок в исходный файл main. Как вы уже описали, компилятор еще не знает о menutype, так как он анализирует исходный файл в верхней части файла.

Другие вопросы по тегам