在过去的几个小时中,我一直在处理头文件,并且在输出存储在构造函数中的值时遇到问题。该值是一个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;
 }

最佳答案

纯粹的猜测,在这里。

在C,C ++和许多其他语言中,以0开头的整数是八进制的。也就是说,它们以8为底,而不是以10为底。

如果您正在执行以下操作:

dateOfBirth = 070503;


那么它将被解释为一个八进制数字(十进制为28995)。由于八进制数字只能包含数字0-7,因此以下内容是非法的:

dateOfBirth = 090503;


如果您正在这样做,建议您不要以这种形式编码日期。

关于c++ - 在头文件中使用int?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20038141/

10-13 03:58