【发布时间】:2016-02-19 08:17:12
【问题描述】:
关于
此程序应通过将当前日期(用户输入的月份和年份)与给定的月份和年份进行比较来返回年龄。
我试图用两个函数创建这个程序。 'int age()' 计算年龄,而'char cont()' 允许用户继续输入数据。
问题
在尝试编译时,我收到以下消息:
对`age(int, int, int, int, int&, int&, char)'的未定义引用
问题
我该如何解决这个问题?
相关计划:
#include<iostream>
#include<string>
using namespace std;
void age (int month_now, int year_now, int month_birth, int year_birth, int& age_year, int& age_month, char letter);
char cont ();
int main ()
{
int month_now;
int year_now;
int month_birth;
int year_birth;
int age_year;
int age_month;
char again;
char y;
cout<<"Enter today's 4-digit year: :"<<endl;
cin>>year_now;
cout<<"Enter today's 2-digit month number: "<<endl;
cin>>month_now;
cout<<"Enter the 4-digit year of your birth: "<<endl;
cin>>year_birth;
cout<<"Enter the 2-digit month number of your birth: "<<endl;
cin>>month_birth;
age(year_now, year_birth, month_now, month_birth, age_year, age_month, again);
return 0;
}
void age (int month_now, int year_now, int month_birth, int year_birth, int& age_year, int& age_month, char letter, char y)
{
do{
if (month_now<month_birth)
{
age_year=year_now-year_birth-1;
age_month=month_now-month_birth+12;
}
else
{
age_year=year_now-year_birth;
age_month=month_now-month_birth;
}
char cont ();
}while (letter==y);
}
char cont (string message)
{
char letter;
cout<<"Do you wish to find another age? (y/n)"<<endl;
cin>>letter;
letter= tolower(letter);
return letter;
}
【问题讨论】:
-
age的签名在声明中与定义不同,你缺少char y。 -
顺便说一句,变量
again永远不会被初始化。 -
cont函数的原型也不一致。它不会导致链接错误的原因是你从不调用它。
标签: c++ function compiler-errors