امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
دو سوال
نویسنده پیام
arian_vc آفلاین
در حال پیشرفت
***

ارسال‌ها: 328
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 66
( 311 تشکر در 95 ارسال )
ارسال: #1
دو سوال
سلام به دوستان عزیز
1-
کد:
::MessageBox(NULL, strcat(str, code), "int exception", MB_OK);
این یه قسمت از کد npp هست اون دونقطه اولش چیه؟

2- بعضی توابع مثل printf تعداد n+1 تا پارامتر داره که از یه سری تابع مثلا
va_read استفاده میشه که حتما باید نوع داده مشخص باشه
میشه برای template ها اینو پیاده کرد؟
چون تو template ها نوع داده مشخص نیست
۱۹-اردیبهشت-۱۳۸۷, ۱۷:۱۹:۱۳
وب سایت ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
RE: دو سوال
1- همونطور که میدونی MessageBox یک تابع API هست و بصورت Global نسبت به برنامه ما تعریف میشه . حالا اگر بخواییم یه همچین تابعی رو توی کلاس یا Namespace صدا بزنیم ، باید برای کامپایلر مشخص کنیم که این تابع Global هست و خارج از کلاس یا Namespace ما تعریف شده .
در نتیجه ازScope Resolution Operator یا همون عملگر :: پشت نام تابع استفاده میکنیم و به کامپایلر اعلام میکنیم که این تابع خارج از کلاس ما تعریف شده !

2- این قضیه هیچ مشابهتی با Template ها نداره . Template ها توابعی هستند که میتونن پارامترهایی محدود از انواع تعریف شده توسط ما دریافت کنند نه اینکه بینهایت پارامتر مختلف و نامشخص دریافت کنند .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۲۰-اردیبهشت-۱۳۸۷, ۰۸:۳۹:۰۶
ارسال‌ها
پاسخ
تشکر شده توسط : arian_vc
arian_vc آفلاین
در حال پیشرفت
***

ارسال‌ها: 328
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 66
( 311 تشکر در 95 ارسال )
ارسال: #3
RE: دو سوال
پس تو تعریف Template ها هست که محدود باشن درسته؟
۲۲-اردیبهشت-۱۳۸۷, ۱۷:۰۴:۴۱
وب سایت ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #4
RE: دو سوال
مثلا تعریف پایین کاملا درسته . حالا دریافت و کنترل آرگومان های سوم به بعدش دیگه با خودته . کاملا واضحه که دو پارامتر اول در زمان تعریف تابع مشخص میشن ( پس باید محدود باشند ) ولی خوب نوع بقیه پارامتر ها رو نمیتونی مشخص کنی چون نامحدود هستند ( این به این معنی هست که بقیه پارامتر ها میتونن از مدل T باشند یا نباشند و این متاسفانه قابل تشخیص دادن نیست !!)


کد:
template <class T>
T GetMax (T a, T b,...) {
  T result;
  result = (a>b)? a : b;
  return (result);
}

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۲۲-اردیبهشت-۱۳۸۷, ۱۹:۱۶:۳۳، توسط Mamad2003.)
۲۲-اردیبهشت-۱۳۸۷, ۱۹:۰۹:۱۰
ارسال‌ها
پاسخ
تشکر شده توسط : arian_vc


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS