mohammad0773
شنبه 03 مرداد 1394, 22:55 عصر
سلام.
من در حال حاضر توی یه مبحث از فصل شی گرایی موندم،اسمش لیترال های تعریف شده توسط کاربر هست که تنها برای c++:ox قابل استفاده میباشد.این لیترال های عمل گر هایی میباشند که وقتی از یک کراکتر مورد استفاده استفاده قرار میگیرد میتوان فرا خوانده شود.ولی هرجور از این تابع ها مینویسم کامپایلر قبول نمیکنه:متفکر:.مانند این شبه کد:
//.....
cl operator"r" (const char *s){
int n=0;
int d=1;
char *p1 =strtok(s,"_");
char *p2=strtok(nullptr,"_");
if(p1)
n=atoi(p1);
if(p2)
d=atoi(p2);
return cl(c,d);
}
//....
int main(){
cl c=11_12r;
//......
}
خوب با این کار وقتی همون خط 15 رو به کار میبری خود به خود عمل گر فرا خونده میشه و به دو متغیر n,d مقدار میده.
من در حال حاضر توی یه مبحث از فصل شی گرایی موندم،اسمش لیترال های تعریف شده توسط کاربر هست که تنها برای c++:ox قابل استفاده میباشد.این لیترال های عمل گر هایی میباشند که وقتی از یک کراکتر مورد استفاده استفاده قرار میگیرد میتوان فرا خوانده شود.ولی هرجور از این تابع ها مینویسم کامپایلر قبول نمیکنه:متفکر:.مانند این شبه کد:
//.....
cl operator"r" (const char *s){
int n=0;
int d=1;
char *p1 =strtok(s,"_");
char *p2=strtok(nullptr,"_");
if(p1)
n=atoi(p1);
if(p2)
d=atoi(p2);
return cl(c,d);
}
//....
int main(){
cl c=11_12r;
//......
}
خوب با این کار وقتی همون خط 15 رو به کار میبری خود به خود عمل گر فرا خونده میشه و به دو متغیر n,d مقدار میده.