当我尝试编译时,我收到两条错误消息,我想了一会儿,无法解决。有人可以阐明我的问题吗?
错误:
leeftijd.cc: In function ‘int main()’:
leeftijd.cc:50:49: error: invalid conversion from ‘int’ to ‘int (*)(int, int, int)’ [-fpermissive]
leeftijd.cc:10:9: error: initializing argument 1 of ‘int leeftijd_in_maanden(int (*)(int, int, int), int, int, int)’ [-fpermissive]
代码:
#include <iostream> // Line one
//line two
#define PEILJAAR 2012
#define PEILMAAND 9
#define PEILDAG 23
using namespace std;
int leeftijd_in_jaren(int _geboortejaar, int _geboortemaand, int _geboortedag);
int leeftijd_in_maanden(int _leeftijd_in_jaren(int _geboortejaar, int _geboortemaand, int _geboortedag),
int _geboortejaar, int _geboortemaand, int _geboortedag);
bool onjuiste_geboortedag(int _geboortedag, int _geboortejaar);
bool onjuiste_geboortemaand(int _geboortemaand, int _geboortejaar);
bool onjuiste_geboortejaar(int _geboortejaar);
int main()
{
int geboortejaar, geboortemaand, geboortedag;
cout << " Geef uw geboortejaar" << endl;
cin >> geboortejaar;
if( onjuiste_geboortejaar(geboortejaar) )
{
cout << "U voldoet niet aan de eisen." << endl;
return 0;
}
cout << " Geef uw geboortemaand" << endl;
cin >> geboortemaand;
if( onjuiste_geboortemaand(geboortemaand, geboortejaar) )
{
cout << "U voldoet niet aan de eisen." << endl;
return 0;
}
cout << " Geef uw geboortedag" << endl;
cin >> geboortedag;
if( onjuiste_geboortedag(geboortedag, geboortejaar) )
{
cout << "U voldoet niet aan de eisen." << endl;
return 0;
}
cout << "U bent "
<< leeftijd_in_jaren(geboortejaar, geboortemaand, geboortedag)
<< " jaar en "
<< " maanden en uw leeftijd in maanden is "
<< leeftijd_in_maanden( leeftijd_in_jaren(geboortejaar, geboortemaand, geboortedag),
geboortejaar, geboortemaand, geboortedag)
<< "." << endl;
return 0;
}
int leeftijd_in_jaren(int _geboortejaar, int _geboortemaand, int _geboortedag)
{
int _leeftijd_in_jaren;
if(_geboortemaand < PEILMAAND || _geboortemaand == PEILMAAND && _geboortedag <= PEILDAG)
{_leeftijd_in_jaren = PEILJAAR - _geboortejaar;}
else{_leeftijd_in_jaren = PEILJAAR - _geboortejaar - 1;}
return _leeftijd_in_jaren;
}
int leeftijd_in_maanden(int _leeftijd_in_jaren(int _geboortejaar, int _geboortemaand, int _geboortedag),
int _geboortejaar, int _geboortemaand, int _geboortedag)
{
int _leeftijd_in_maanden =
_leeftijd_in_jaren(_geboortejaar, _geboortemaand, _geboortedag) * 12 + _geboortemaand;
return _leeftijd_in_maanden;
}
bool onjuiste_geboortejaar(int _geboortejaar)
{return((PEILJAAR - _geboortejaar) < 10 || (PEILJAAR - _geboortejaar) > 100);}
bool onjuiste_geboortemaand(int _geboortemaand, int _geboortejaar)
{
return( (PEILJAAR - _geboortejaar) == 10 && _geboortemaand > PEILMAAND ||
(PEILJAAR - _geboortejaar) == 100 && _geboortemaand > PEILMAAND ||
_geboortemaand < 0 || _geboortemaand > 12);
}
bool onjuiste_geboortedag(int _geboortedag, int _geboortejaar)
{
return( PEILDAG <= _geboortedag && (PEILJAAR - _geboortejaar) == 10 ||
PEILDAG >= _geboortedag && (PEILJAAR - _geboortejaar) == 100||
_geboortedag < 0 || _geboortedag > 31);
}