gpt4 book ai didi

C++:对 void 函数的 undefined reference

转载 作者:行者123 更新时间:2023-11-28 05:49:50 25 4
gpt4 key购买 nike

关于

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

我试图用两个函数创建这个程序。 'int age()'计算年龄,而'char cont()'允许用户继续输入数据。

问题

在尝试编译时,我收到以下消息:

对`age(int, int, int, int, int&, int&, char)'的 undefined reference

问题

我该如何解决这个问题?

有问题的程序:

#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;
}

最佳答案

与函数原型(prototype)相比,age定义 有一个额外的 char 参数。

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

此外,将未初始化变量再次按值传递给函数的行为是未定义。在 main 中初始化它,或者通过引用传递它并确保函数初始化它。

关于C++:对 void 函数的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35500464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com