【发布时间】:2015-05-23 21:13:54
【问题描述】:
我的代码在 Visual Studio 和 Windows 中运行良好,但在 Xcode 中我遇到了大问题。首先,我想知道在删除 direct.h 包含(在 Xcode、mac 中)后,我收到以下错误
此外,我创建的类中的对象(这与 direct.h 无关)都无法初始化。 Xcode 似乎不理解我的任何构造函数。错误消息如下所示。该示例适用于我的一个对象。有什么帮助吗?
这是我的一门课。请注意所有类都没有加载!!
class p_args{
public:
string ts,par,fxd,dir,dato;
int diFL, RSQtype, runtype, *DATO;
int Snow2GlacierOption,Snow2GlacierJulianDay,parallel;//Added 02-12-2012 (extra arguments in args.txt)
int manual,nopt,nopt2,maxn,kstop;
float pcento;
p_args();~p_args();
void getfnames(int);
};
p_args::p_args(){};
p_args::~p_args(){};
void p_args::getfnames(int plots){//read file names
int i=0;
this->DATO=new int[3];
ifstream inFile;
inFile.open("ARGS.txt",ios::in);
if (inFile.is_open()){
inFile>>this->dir;cout<<"Dir\t"<<this->dir<<"\n";
inFile>>this->ts;cout<<"ts\t"<<this->ts<<"\n";
inFile>>this->par;cout<<"par\t"<<this->par<<"\n";
inFile>>this->fxd;cout<<"fxd\t"<<this->fxd<<"\n";
inFile>>this->diFL; // multiple lapse
inFile>>this->manual;//manual control of calib.
inFile>>this->nopt;
inFile>>this->nopt2;
inFile>>this->maxn;
inFile>>this->kstop;
inFile>>this->pcento;
inFile>>this->dato;cout<<lnz<<"BEGIN =\t"<<this->dato<<"\n";
if(plots==1){ //Use with Grapher
this->DATO = breakdotstring(dato);
cout<<this->DATO[0]<<"-"<<this->DATO[1]<<"-"<<this->DATO[2]<<"\n";
//cin.get();
}
inFile>>this->RSQtype;
if(this->RSQtype==0){cout<<"RSQ = NASH SUTCLIFFE (NSEFF)"<<"\n";} else {cout<<"RSQ = NASH SUTCLIFFE *(1-VOLUMETRIC_ERROR)"<<"\n";}
inFile>>this->runtype;
if(this->runtype==0)cout<<"SIMULATING WITH GIVEN PARAMETERS\n";
if(this->runtype==1)cout<<"PARAMETER STUDY RUN";
if((this->runtype!=0) & (this->runtype!=1) ){cout<<"OPTIMISING RUN";}
cout<<lnz;
inFile>>this->Snow2GlacierOption;//Added 02-12-2012 (extra arguments in args.txt)
cout<<this->Snow2GlacierOption<<"--Snow2GlacierOption\n";
inFile>>this->Snow2GlacierJulianDay;//Added 02-12-2012 (extra arguments in args.txt)
cout<<this->Snow2GlacierJulianDay<<"--Snow2GlacierJulianDay\n";
if(this->Snow2GlacierOption==0)cout<<"Snow Storage On Julian Day["<<this->Snow2GlacierJulianDay<<"] Not Converted to Glacier\n";//Added 02-12-2012 (extra arguments in args.txt)
if(this->Snow2GlacierOption==1)cout<<"Snow Storage On Julian Day["<<this->Snow2GlacierJulianDay<<"] Converted(Zeroed)\n";//Added 02-12-2012 (extra arguments in args.txt)
cout<<lnz;//Added 02-12-2012 (extra arguments in args.txt)
inFile>>this->parallel;//Added 02-12-2012 (extra arguments in args.txt)
//cout<<this->parallel<<"-->1=Parallel/0=Serial Simulation\n";
if(this->parallel==0)cout<<"SERIAL HBV SIMULATIONS\n";//Added 02-12-2012 (extra arguments in args.txt)
if(this->parallel==1)cout<<"PARALLEL HBV SIMULATIONS\nEach simulation is 1 Hydrological year\n";//Added 02-12-2012 (extra arguments in args.txt)
cout<<lnz;//Added 02-12-2012 (extra arguments in args.txt)
inFile.close();
}
}
【问题讨论】:
-
@Cyber 我会看看,因为这可能会回答第一部分,但可能不会回答我问题的第二部分。谢谢:)
-
我们无法回答第二部分,因为我们没有p_args的构造函数的代码。
-
@Borgleader 我添加了我的一门课程。请注意,所有类在 Xcode 中都失败并出现相同的错误。我是否使用默认构造函数都没关系!我检查了包含的内容,它们没问题!!
-
每个问题只能回答一个问题。
-
@peterchen 当我开始这个问题时,我认为这是将代码从 vc++ 迁移到 Xcode 的问题,因为代码在 Windows 中是可以的。问题不断演变,因此产生了混乱。