C ++:对void函数的未定义引用

0x1000001

关于

该程序应通过将当前日期(用户输入的月份和年份)与给定的月份和年份进行比较来返回年龄。

我试图用两个功能创建该程序。“ 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比较函数原型参数。

您需要确保函数名称和参数类型(而非参数名称)匹配。

同样,将未初始化的变量again 按值传递给函数的行为是不确定的可以在中初始化它main,也可以通过引用将其传递,并确保该函数对其进行了初始化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章