تعریف explict برای توابع موجود کلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۴۶۹ نفر آنلاین
۲۲۷ عضو و ۲۴۲ مهمان در سایت حاضرند

تعریف explict برای توابع موجود کلاس

+2 امتیاز

سلام.

با توجه به تعریف explicit که برای سازنده کلاس تعریف میشه که کامپایلر مقید میشه فقط و فقط همان نوع داده ای را قبول کنه و در غیر اینصورت در هنگام کامپایل خطا صادر می کنه آیا راهی وجود داره که همین کار را برای توابع عضو کلاس انجام بدیم .

سوال شده اسفند 15, 1392  بوسیله ی Mohajem (امتیاز 15)   1 2

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

داخل همون لینکی هم که گذاشتین توضیح دادم .

explicit برای توابع عضو کلاس کار نمی کنه فقط مخصوص سازنده کلاسه ولی میتونین حالت هایی که نمی خواهید رو غیر فعال کنید .

مثال :

class A
{
public:
    void func(int a){} //zaman seda zadan ba int
    template<typename T> void func(T a) = delete; //zaman seda zadan ba voroodi gheir az int
};

 

الان کد زیر ارور میده که همون چیزیه که شما می خواین :

A a;
a.func('7');//call function with char not int

 

پاسخ داده شده اسفند 15, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد اسفند 15, 1392 بوسیله ی Mohajem
...