过去几个小时我一直在处理头文件,并且在输出存储在构造函数中的值时出现问题。这个值是一个int,但它不会让我存储任何高于7的数字,当我使用函数输出它时,它会产生一个完全不同的数字。我在头文件中执行此操作并使用.cpp中的函数来输出数据。我对C ++很新,所以这可能是一个业余的错误。任何帮助将不胜感激!!
头文件----
#ifndef PATIENT_DEMO_CLASS
#define PATIENT_DEMO_CLASS
// system defined preprocessor statement for cin/cout operations
#include <iostream.h>
// programmer defined preprocessor statement for setreal operation
#include "textlib.h"
// programmer defined preprocessor statement for String
#include "tstring.h"
class PatientDemographicInformation
{
private:
int patientDateOfBirth;
public:
// constructor
PatientDemographicInformation(int dateOfBirth);
// returns the patient's age
int getPatientAge( );
};
PatientDemographicInformation::PatientDemographicInformation(int dateOfBirth)
{
patientDateOfBirth = dateOfBirth;
}
int PatientDemographicInformation::getPatientAge( )
{
return patientDateOfBirth;
}
#endif
.cpp ----
#include <iostream.h>
#include <tstring.h>
#include "PatientDemographicInformation.h"
int main( )
{
PatientDemographicInformation john(11161990);
cout << john.getPatientAge() << endl;
return 0;
}
答案 0 :(得分:4)
纯粹的猜测,这里。
在C,C ++和许多其他语言中,使用前导0编写的整数是 octal ;也就是说,它们位于基数8而不是基数10。
如果您正在执行以下操作:
dateOfBirth = 070503;
然后将被解释为八进制数(十进制28995)。由于八进制数字只能有0到7位数,因此以下内容是非法的:
dateOfBirth = 090503;
我建议您不要在此表单中对日期进行编码,如果这是您正在做的事情。