সি ++ এ, ব্যতিক্রমগুলির মতো বৈশিষ্ট্যগুলি আপনার পুরো প্রোগ্রামকে প্রভাবিত করে: আপনি হয় এটি আপনার পুরো প্রোগ্রামে অক্ষম করতে পারেন , বা আপনার কোড জুড়ে আপনাকে সেগুলি মোকাবেলা করতে হবে। সি ++ রিপোর্টে একটি বিখ্যাত নিবন্ধ হিসাবে এটি রাখে:
পাল্টা স্বজ্ঞাতভাবে, কোডিং ব্যতিক্রমগুলির কঠোর অংশটি সুস্পষ্ট নিক্ষেপ এবং ক্যাচ নয়। ব্যতিক্রমগুলি ব্যবহার করার সত্যিই শক্ত অংশটি হ'ল সমস্ত হস্তক্ষেপ কোডটি এমনভাবে লিখুন যে কোনও স্বেচ্ছাচারী ব্যতিক্রম তার থ্রো সাইট থেকে তার হ্যান্ডলারে প্রচার করতে পারে, নিরাপদে পৌঁছে যায় এবং পথের সাথে প্রোগ্রামের অন্যান্য অংশগুলিকে ক্ষতি না করে।
যেহেতু এমনকি new
ব্যতিক্রম ছুঁড়ে ফেলেছে , প্রতিটি ফাংশনকে বেসিক ব্যতিক্রমী সুরক্ষা সরবরাহ করা দরকার - যদি না এটি কেবলমাত্র এমন ফাংশনগুলিকে কল করে যা কোনও ব্যতিক্রম ছোঁড়ার নিশ্চয়তা দেয় না - যদি না আপনি আপনার সম্পূর্ণ প্রকল্পে ব্যতিক্রম সম্পূর্ণভাবে অক্ষম করেন ।
সুতরাং, ব্যতিক্রমগুলি একটি "পুরো-প্রোগ্রাম" বা "সম্পূর্ণ দল" বৈশিষ্ট্য, যেহেতু তাদের অবশ্যই এটি ব্যবহার করে একটি দলের প্রত্যেককে বুঝতে হবে। তবে যতটা আমি জানি সমস্ত সি ++ বৈশিষ্ট্যগুলি এর মতো নয়।
একটি সম্ভাব্য উদাহরণ হ'ল যদি আমি টেমপ্লেটগুলি না পাই তবে আমি সেগুলি ব্যবহার না করি, আমি এখনও সঠিক সি ++ লিখতে সক্ষম হব - বা আমি করব না ?. আমি এমনকি sort
পূর্ণসংখ্যার একটি অ্যারেতেও কল করতে পারি এবং এর আশ্চর্যজনক গতির সুবিধাগুলি উপভোগ করতে পারি। সি এর qsort
(কারণ কোনও ফাংশন পয়েন্টার বলা হয় না), বাগের ঝুঁকি ছাড়াই - বা না? দেখে মনে হচ্ছে টেমপ্লেটগুলি "পুরো দল" নয়।
অন্য কোন সি ++ বৈশিষ্ট্য রয়েছে যা ইমপ্যাক্ট কোডগুলি সরাসরি তাদের ব্যবহার না করে এবং তাই "পুরো দল"? আমি বিশেষত সিটিতে উপস্থিত বৈশিষ্ট্যগুলিতে আগ্রহী am
আপডেট : আমি বিশেষত এমন বৈশিষ্ট্যগুলি সন্ধান করছি যেখানে কোনও ভাষা-প্রয়োগকৃত চিহ্ন নেই যেখানে তাদের সম্পর্কে সচেতন হওয়া দরকার। প্রথম উত্তরটি আমি কনস্ট-নির্ভুলতার উল্লেখ করেছি, যা সম্পূর্ণ দল, সুতরাং প্রত্যেককে এটি সম্পর্কে শিখতে হবে; তবে এএএএএফসি এটি কেবল তখনই প্রভাব ফেলবে যখন আপনি চিহ্নিত ফাংশনটি কল করেছেন এবং সংকলকটি আপনাকে const
অ-কনস্ট্যান্ট অবজেক্টগুলিতে কল করা থেকে বিরত করবে, তাই আপনি গুগলে কিছু পেতে পারেন। ব্যতিক্রম সহ, আপনি এমনকি এটি পান না; তদ্ব্যতীত, আপনি ব্যবহার করার সাথে সাথে এগুলি সর্বদা ব্যবহার করা হয় new
, তাই ব্যতিক্রমগুলি আরও "कपटी"। যেহেতু আমি এটিকে উদ্দেশ্যমূলকভাবে বলতে পারি না, যদিও আমি পুরো টিমের কোনও বৈশিষ্ট্যের প্রশংসা করব।
আপডেট 2 : সি ++ বৈশিষ্ট্যটির পরিবর্তে আমার "সি ++ - নির্দিষ্ট বৈশিষ্ট্য" এর মতো কিছু লেখা উচিত ছিল, মাল্টিথ্রেডিংয়ের মতো জিনিসগুলি বাদ দিতে যা প্রচুর পরিমাণে মূলধারার প্রোগ্রামিং ভাষার ক্ষেত্রে প্রযোজ্য।
পরিশিষ্ট: কেন এই প্রশ্নটি উদ্দেশ্যমূলক (যদি আপনি অবাক হন)
সি ++ একটি জটিল ভাষা, তাই অনেকগুলি প্রকল্প বা কোডিং গাইড "সাধারণ" সি ++ বৈশিষ্ট্যগুলি বেছে নেওয়ার চেষ্টা করেন এবং অনেক লোক বেশিরভাগ বিষয়গত মানদণ্ড অনুযায়ী কিছুগুলিকে অন্তর্ভুক্ত বা বাদ দেওয়ার চেষ্টা করেন। সে সম্পর্কে যে প্রশ্নগুলি এখানে সঠিকভাবে নিয়মিতভাবে বন্ধ হয়ে যায়।
উপরে, পরিবর্তে, আমি একটি "সম্পূর্ণ দল" ভাষার বৈশিষ্ট্যটি কী (সংক্ষিপ্তভাবে সম্ভব হিসাবে সংজ্ঞায়িত করেছি), সি ++ সম্পর্কে সাহিত্যে বিস্তৃত সহায়ক প্রমাণ সহ এক উদাহরণ (ব্যতিক্রম) সরবরাহ করি এবং সি ++ এ পুরো দলের বৈশিষ্ট্য জিজ্ঞাসা করি ব্যতিক্রম অতিক্রম।
আপনার "পুরো দলটি" বৈশিষ্ট্যগুলি ব্যবহার করা উচিত, বা এটি কোনও প্রাসঙ্গিক ধারণা কিনা, তা সাবজেক্টিভ হতে পারে - তবে এর অর্থ শুধুমাত্র এই প্রশ্নের গুরুত্ব বিষয়বস্তু, বরাবরের মতো।