خدمات مشاوره مهندسی- اموزش و انجام پروژه شبیه سازی صنعتی دانشجویی

گروه مشاوره آموزشی - پژوهشی بنیان دانش توس ارائه مشاوره، آموزش و انجام پروژه های شبیه سازی صنعتی و دانشجویی

خدمات مشاوره مهندسی- اموزش و انجام پروژه شبیه سازی صنعتی دانشجویی

گروه مشاوره آموزشی - پژوهشی بنیان دانش توس ارائه مشاوره، آموزش و انجام پروژه های شبیه سازی صنعتی و دانشجویی

خدمات مشاوره مهندسی- اموزش و انجام پروژه شبیه سازی صنعتی دانشجویی

گروه پژوهشی - آموزشی بنیان دانش توس در اسفند 1390 با همکاری تعدادی از دانشجویان تحصیلات تکمیلی دانشگاه های معتبر تهران و مشهد شروع به کار کرد و توفیقات زیادی کسب نمود که به تدریج در وبلاگ بارگزاری خواهد شد. در همین راستا شاخه آموزشی گروه اقدام به راه اندازی سایت moomsan.blog.ir نمود تا ضمن ارائه آموزش های مجازی، به ارتقای خدمات گروه بپردازد. در این وبلاگ فعلا خدمات کدنویسی فرترن به مرور بارگذاری می شود. امید است مورد استفاده متخصصین بازدید کننده از سایت قرار گیرد.
آدرس: مشهد، بین سلمان فارسی 5 و 7 پلاک 48
راه های تماس با گروه :

Tel: +98 915 125 2688
Phone: +98 51 38477407

زمان پاسخگویی: 9 تا 13:30 و 16 تا 21
Telegram.me/moomsan
moomsan@gmail.com
ID: @moomsan

چرا تعریف مجدد عملگر استفاده می شود؟

می توان هر برنامه C++ را بدون دانستن و پیاده سازی مجدد عملگرها نوشت. با این حال، سربارگذاری عملگر توسط برنامه نویسان، برای ایجاد یک برنامه قابل درک استفاده می شود. مثلا

می توانید کد را اینطور جایگزین کنید:

calculation = add(multiply(a, b),divide(a, b));

به

calculation = (a*b)+(a/b);

چگونه عملگرها را در C++ تعریف مجدد کنیم؟

برای تعریف مجدد عمگر، یک تابع عملگر خاص در داخل کلاس تعریف می شود:

class className

{

… .. …

public

returnType operator symbol (arguments)

{

… .. …

}

… .. …

};

در اینجا، returnType نوع بازگشتی تابع است.

symbol نماد عملگریست که می خواهید آن را مجددا تعریف کنید. مانند: +، <، -، ++

می توانید آرگومان را به روش مشابه قبلی به تابع عملگر ارسال کنید.

مثال: سربارگذاری عملگر در برنامه نویسی C++

#include <iostream>

using namespace std;

class Test

{

private:

int count;

public:

Test(): count(5){}

void operator ++()

{

count = count+1;

}

void Display() { cout<<“Count: “<<count; }

};

int main()

{

Test t;

// this calls “function void operator ++()” function

++t;

t.Display();

return 0;

}

این تابع هنگامی که عملگر ++ بخواهد بر روی شیء کلاس

Test (object t در این مورد)

عمل کند، صدا زده می شود.

در برنامه، تابع عملگر

void operator ++()

در کلاس Test تعریف شده است.

این تابع مقدار count را برای شیء t یک واحد افزایش می دهد.

نکات مهم

۱- سربارگذاری عملگر اجازه می دهد تا مجددا عملگر را تعریف کنید که فقط برای انواع تعریف شده توسط کاربر (اشیا، ساختارها) کار می کند. نمی تواند برای انواع int، float، char و غیره استفاده شود.

۲- دو اپراتور = و & فعلا در C++ به طور پیش فرض تعریف مجدد شده اند.. به عنوان مثال: برای کپی اشیاء از کلاس مشابه، می توانید مستقیما از عملگر = استفاده کنید. نیازی به ایجاد تابع عملگر ندارید.

۳- سربارگذاری عملگرها نمی تواند اولویت و وابستگی آن ها را تغییر دهد. با این حال، اگر می خواهید به آن ها اولویت دهید، باید از پرانتز استفاده کنید.

۴- چهار عملگر در C++ وجود دارد که نمیتوان آن ها را تعریف مجدد کرد:: (تشخیص حوزه)، . (انتخاب عضو)، * (انتخاب عضو از طریق اشاره گر به تابع) و 😕 (عملگر سه جانبه).

بهترین روش ها را هنگام استفاده از سربارگذاری عملگر دنبال کنید

همانطور که خواندید تعریف مجدد عملگر، اجازه می دهد تا نحوه کار آن را دوباره مشخص کنید.

در مثال بالا، عملگر ++ بر روی شیء عمل می کند تا مقدار count را یک واحد افزایش دهد.

void operator ++()

{

count = count+1;

}

با این حال، اگر از کد زیر استفاده می کنید، هنگامی که عملگر ++ استفاده می شود، مقدار count 100 کاهش می یابد.

void operator ++()

{

count = count-100;

}

کد بالا از لحاظ فنی درست اما گیج کننده و درک آن دشوار است.

شغل شما به عنوان یک برنامه نویس، استفاده به موقع و درست از سربارگذاری عملگرهاست.

در مثال بالا، وقتی عملگر ++ استفاده می شود، مقدار count یک واحد افزایش می یابد. با این حال، این برنامه ناقص است زیرا نمی توانید از کد زیر استفاده کنید چون که نوع بازگشتی از تابع عملگر، void است.

t1 = ++t

پایان قسمت بیست و هفتم

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی