cpp-06-07 - امضای توابع؟

بازدید : 27

1

اشتراک

cpp-06-07 - امضای توابع؟

توضیحات :

در این ویدیو با یکی از مهم‌ترین ویژگی‌های زبان ++C آشنا می‌شوید:
اینکه این زبان هم Statically Typed است و هم Strongly Typed.

به زبان ساده، C++ قبل از اجرای برنامه از شما می‌خواهد که نوع تمام متغیرها مشخص باشد و اجازه نمی‌دهد یک متغیر بدون تعیین نوع وارد مرحله اجرا شود. همچنین اجازه نمی‌دهد نوع داده‌ها در زمان اجرا به‌سادگی و بدون کنترل تغییر کند.


فرق Statically Typed و Strongly Typed چیست؟

در این آموزش به‌صورت ساده یاد می‌گیرید:

  • Static Typing یعنی نوع متغیرها باید قبل از کامپایل مشخص باشد.

  • Strong Typing یعنی نمی‌توانید به‌راحتی نوع یک متغیر را تغییر دهید یا داده‌ای با نوع ناسازگار در آن ذخیره کنید.

همچنین با مفهوم Type Conversion و خطرات تبدیل‌های ضمنی در C++ آشنا می‌شوید.


مشکل تعریف توابع بعد از main

در بخش عملی ویدیو، می‌بینید اگر توابعی مثل f1 و f2 را بعد از تابع main بنویسید، کامپایلر آن‌ها را نمی‌شناسد و با خطای:

identifier not found

مواجه می‌شوید.
دلیلش این است که C++ از بالا به پایین کد را می‌خواند.


Function Prototype یا Signature چیست؟

برای حل این مشکل، با مفهوم بسیار مهم Function Prototype (یا Function Signature) آشنا می‌شوید. در این ویدیو یاد می‌گیرید:

  • چطور قبل از main امضای تابع را تعریف کنید

  • Prototype شامل چیست:

    • نوع خروجی

    • نام تابع

    • نوع و تعداد پارامترها

مثلاً متوجه می‌شوید که:

  • اگر تابع مقداری برمی‌گرداند، نباید void باشد

  • باید نوع بازگشتی دقیقاً با مقدار برگشتی هماهنگ باشد


ارتباط Prototype با Static Typing

در این ویدیو دقیقا می‌فهمید که چرا C++ شما را مجبور می‌کند قبل از استفاده از یک تابع، آن را معرفی کنید:
چون این زبان Statically Typed است و می‌خواهد همه چیز قبل از اجرا شفاف باشد.


نکته مهم درباره کامپایلرها

در این آموزش هشدار داده می‌شود که بعضی کامپایلرها (مثل MSVC) ممکن است برخی خطاهای خطرناک را نادیده بگیرند و این موضوع می‌تواند باعث رفتارهای غیرقابل پیش‌بینی در زمان اجرا شود؛ مخصوصاً در مباحثی مثل آرایه‌ها و اشاره‌گرها.


آنچه در نهایت یاد می‌گیرید

بعد از این ویدیو کاملاً متوجه می‌شوید:

  • C++ چرا زبان استاتیک و استرانگ تایپ است

  • چرا ترتیب تعریف توابع مهم است

  • Function Prototype دقیقاً چیست و چه کاربردی دارد

  • چرا در پروژه‌های بزرگ توابع به فایل‌های جدا منتقل می‌شوند

لطفا برای گذاشتن نظرات خود وارد شوید

نظرات شما عزیزان