سلام
در جایی خوندم که C# رو به صورت زیر تعریف کرده :
“ C# یک زبان جدید و مشابه با C++ است اما با این تفاوت که فاقد ویژگیهای ناامن C++ است”
لطفا در مورد ویژگیهای ناامن C++ توضیح بدین.
سلام
در جایی خوندم که C# رو به صورت زیر تعریف کرده :
“ C# یک زبان جدید و مشابه با C++ است اما با این تفاوت که فاقد ویژگیهای ناامن C++ است”
لطفا در مورد ویژگیهای ناامن C++ توضیح بدین.
منظور از ویژگی های نا امن، قسمتهای مربوط به کست کردن متغییرها به هم است. توی C++ این مورد کنترل نمی شد و به همین دلیل اگر کست اشتباهی به وسیله ی برنامه نویس صورت می گرفت ممکن بود که برنامه کرش کنه یا هزار تا مشکل دیگه پیش بیاد. اما توی سی شارپ نوع داده ای متغییر ها قبل از هر کاری چک میشن تا صحت اون کار تایید بشه.
در کل این مورد برمی گرده به همون Type Safety. اگر می خوای بیشتر بدونی، این مورد رو سرچ کن.
البته زبان ++C بسیار قدرتمند است اما منظور از ناامن در اینجا همون کلمه Unsafe است که برای برنامه نویسهای Net. آشناست.
در ++C وظیفه مدیریت حافظه و منابع سیستمی بردوش خود برنامه نویس بود و این امر هم با استفاده از اشاره گرها امکان پذیر بود اما در #C این وظیفه رو خود کامپایلر به عهده گرفته و بنابراین از اشتباهاتی که ممکن بود برنامه نویس انجام بده دیگر خبری نیست.
به همین دلیل کدهای معمول در #C کدهای Safe هستند.البته میشه با استفاده از Unsafe Keyword از اشاره گر ها هم استفاده کرد.
موفق باشید
در واقع همونطوری که گفتن بحث unsafe در ++C همون مسئله مدیریت حافظه بود. که به نظر من با وجود اینکه در برنامه نویس های مبتدی باهاش مشکل دارن ولی برای کسایی که مفاهیم حافظه و اشاره گرها رو خوب درک کردن به نظر من همین اشاره گر ها واسشون یک مزیت بزرگ محسوب می شه.
کاملا درست میگید قدرت اشاره گرها رو فقط کسانی درک می کنند که درصورت عدم استفاده از اونها کارشون واقعا" گره می خورده.
درهرصورت اشاره گرها از نظر من قدرتمندترین خصوصیت زبانهایی مثل ++C,C است.
موفق باشید