编译器显示:undifined reference to ’setmessage()‘
请问是为什么怎么改?感谢!!
#include
using namespace std;
#include
#define N 10
int i=0;
void setmessage();
//void showcourse();
//void choosecourse();
//void save();
void menu()//一级菜单
{
cout< cout cout cout cout cout cout cout }
//int main()
void domenu()
{
menu();
int choose1;
cin>>choose1;
switch(choose1)
{
case 1:setmessage();break;
//case 2:showcourse();break;
//case 3:choosecourse();break;
//case 4:save();break;
case 0:break;
default:break;
}
}
class course
{
public:
course(){}
void setmessage();
private:
string cname;
int cscore,cnum;
};
void course:: setmessage()
{
int j1=1;
while(j1=1)
{
cout<<"课程编号:"< cin>>cnum;
cout<<"课程名称:"< cin>>cname;
cout<<"课程学分:"< cin>>cscore;
i++;
cout<<"如果停止录入请按0,继续录入请按1"< cin>>j1;
}
}
int main()
{
domenu();
course c[N];
c[i].setmessage();
return 0;
}
编译器显示:undifined reference to ’setmessage()‘
请问是为什么怎么改?感谢!!
你外部的函数setmessage你只是定义了没有实现吗,肯定报这个错误
你最上面的函数 void setmessage(); 没有实现
你下次要贴程序,还是截图或者用代码格式贴出来,你这样看起来很累。。
报 引用 函数setmessage() 未定义;
要么写完整这个函数再调;
要么不要调用这个函数,程序中用到setmessage()的地方都注释或删掉;
楼上说的对,你只是定义了这个函数setmessage()
void setmessage();表示我要使用这个函数,
setmessage(){
I say hello world;//这是这个函数要做的事
}
我也是个菜鸟,我感觉你这个定义了两个setmessage函数吧,
一个定义域在这个文件中,一个在course中(我不清楚这样会不会起冲突),
然后你domune函数中调用的是定义域为这个文件的函数,
但是这个函数你没有告诉编译器它是干嘛的,所以它报错。
说直白点吧你那个domune函数中的setmessage没有说它是干嘛的,只是定义了而已,
你下面course中的setmessage函数定义了,这样不会起冲突?
setmessage只有函数声明,没有函数实现
domenu()中调用的setmessage是没有实现的。