找不到声明的函数
Declared function can't be found
我正在尝试制作一个面向对象的菜单,但是在返回int函数的情况下初始化int变量时遇到了一些问题。
法典:
#include <Menu.h>
#include <iostream>
using namespace std;
void Menu::showMainMenu(){
cout<<"""Main Menu"""<<endl;
cout<<"1. Manage students"<<endl;
cout<<"2. Manage assignments"<<endl;
cout<<"3. Manage statistics"<<endl;
cout<<"4. Print database"<<endl;
cout<<"0. Exit"<<endl<<endl;
}
void Menu::showStudentMenu(){
cout<<"""Student Menu"""<<endl;
cout<<"1. Add student"<<endl;
cout<<"2. Remove student"<<endl;
cout<<"3. Edit student"<<endl;
cout<<"4. Print student"<<endl;
cout<<"5. Print students"<<endl<<endl;
}
void Menu::showAssignmentMenu(){
cout<<"""Assignment Menu"""<<endl;
cout<<"1. Add assignment"<<endl;
cout<<"2. Remove assignment"<<endl;
cout<<"3. Edit assignment"<<endl;
cout<<"4. Print assignment"<<endl;
cout<<"5. Print assignments"<<endl<<endl;
}
void Menu::showStatisticsMenu(){
cout<<"""Assignment Menu"""<<endl;
cout<<"1. Add assignment"<<endl;
cout<<"2. Remove assignment"<<endl;
cout<<"3. Edit assignment"<<endl;
cout<<"4. Print assignment"<<endl;
cout<<"5. Print assignments"<<endl<<endl;
}
string Menu::stringInputHandler(){
string input;
cout<<"enter:"; cin>>input; cout<<endl;
if(!input.empty()){
return input;
}
cout<<"Input cannot be empty"<<endl;
stringInputHandler();
return "Error! (f:sIH)";
}
int intInputHandler(){
int input;
cout<<"enter:"; cin>>input; cout<<endl;
if(input){
return input;
}
cout<<"Input cannot be empty"<<endl;
intInputHandler();
return 0;
}
void Menu::CommandControllMain(){
showMainMenu();
int ret;
ret = intInputHandler();
while(ret){
switch(ret){
case 1:CommandControllStudent();break;
case 2:CommandControllAssignment();break;
case 3:break;
case 4:break;
case 0:break;
default:cout<<"Wrong option selected!";break;
}
}
}
void Menu::CommandControllStudent(){
showStudentMenu();
int ret = intInputHandler();
}
void Menu::CommandControllAssignment(){
showAssignmentMenu();
int ret =intInputHandler();
}
void Menu::CommandControllStatistics(){
showStatisticsMenu();
int ret =intInputHandler();
}
所以有:intInputHandler()
和一个 var int ret
我不能做 int ret = intInputHandler();
错误:
D:c++BeginLab6-8_UMLDebug/../Menu.cpp:121: undefined reference to `Menu::intInputHandler()'
替换
int intInputHandler()
跟
int Menu::intInputHandler()
您实现的不是成员,而是自由函数。
相关文章:
- Visual Studio中的函数声明和函数定义问题
- 为什么函数声明中允许 const?
- 如果 x.h 仅由函数声明组成,为什么有必要在 x 中包含 x.h.cpp
- * 和 ** 在 C++ 函数声明中是什么意思?
- 构造函数/函数声明参数列表中的统一初始化
- 在将函数声明为友元时,尖括号的含义是什么?
- 为什么转换函数声明不需要至少一个定义类型说明符
- 如何正确编写指针函数声明?
- 在"template"和函数声明之间使用:template<typename trait> using tr = base_trait<trait> void fn(tr::t
- 为什么要将函数声明和定义放在单独的文件中
- 为什么系统日志有两个不同的函数声明?
- 我如何获取数组的大小,以便我可以从函数声明所述数组
- 使用 enable_if 在按值传递与按引用传递之间更改函数声明
- JavaScript 中的一等函数和 C++ 中的函数声明
- C++ 通过函数声明后初始化向量
- VS2017 #error: : snprintf 的宏定义与标准库函数声明冲突
- C++ 17 个友元函数声明和内联命名空间
- MSVC 2017 - 错误 - 如何将模板类 X 的模板成员函数声明为嵌套类 X::Y 的好友
- 将派生类的构造函数声明为父类的友元
- 用于从 ANSI 字符串转换为 std::basic_string <TCHAR>的正确函数声明