PDA

View Full Version : مشکل در لیترال های تعریف شده توسط کاربر



mohammad0773
شنبه 03 مرداد 1394, 21: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 مقدار میده.

ehsan_faal
شنبه 03 مرداد 1394, 22:13 عصر
سلام.
اینجا (http://barnamenevis.org/showthread.php?501498-%D9%81%D9%88%D8%A7%DB%8C%D8%AF-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-User-defined-Literals) یه مثال هست.

حامد مصافی
یک شنبه 04 مرداد 1394, 10:04 صبح
cl c="11_12"r;

mohammad0773
یک شنبه 04 مرداد 1394, 13:27 عصر
cl c="11_12"r;



کامپایلش کردید؟
_____________
از هردو تون ممنونم