ভার্চুয়াল ফাংশনগুলির জন্য কেন সি ++ এর একটি "খাঁটি" কীওয়ার্ড নেই?


31

আমি সবসময় ভাবছি কেন আমরা কোড করি

virtual void MyFunction() = 0; 

এবং না

pure virtual void MyFunction();

এই সিদ্ধান্তের ভিত্তিতে কোনও রেফারেন্স আছে?


2
কোন মতামত নেই? ঠিক আছে তাহলে। কারণ সেভাবেই সি ++ ভাষার সংজ্ঞা দেওয়া হয়।
gnasher729

4
মনে রাখবেন যে একটি "খাঁটি" ফাংশনটির প্রায়শই সম্পর্কিত নয় এমন কিছু অর্থ।
ব্যবহারকারী 253751

উত্তর:


71

থেকে ডিজাইন এবং সি বিবর্তন ++, বিয়ারনে স্ট্রোভস্ট্রুপের - - অ্যাডিসন ওয়েসলে (ISBN-0-201-54330-3) - অধ্যায় 13.2.3:

কৌতূহল = 0বাক্য গঠনটি একটি নতুন কীওয়ার্ড প্রবর্তনের সুস্পষ্ট বিকল্পের উপরে pureবা abstractসেই সময় আমি কোনও নতুন কীওয়ার্ড গ্রহণ করার কোনও সুযোগ দেখেনি বলে বেছে নেওয়া হয়েছিল । আমি যদি পরামর্শ দিয়েছিলাম pure, রিলিজ ২.০ অ্যাবস্ট্রাক্ট ক্লাস ছাড়াই পাঠানো হত। একটি ভাল সিনট্যাক্স এবং বিমূর্ত শ্রেণীর মধ্যে একটি পছন্দ দেওয়া, আমি বিমূর্ত ক্লাস বেছে নিয়েছি। বরং বিলম্ব ঝুঁকি এবং উপর নির্দিষ্ট মারামারি incurring চেয়ে pure, আমি ঐতিহ্য সি এবং 0 ব্যবহার প্রতিনিধিত্ব করতে এর সি ++ সম্মেলন ব্যবহৃত সেখানে নেই

যাইহোক সি ++ স্ট্যান্ডার্ডের দিকে তাকানো (Class 9.2 - শ্রেণীর সদস্য) = 0বলা হয় খাঁটি নির্দিষ্টকরণকারী


11
চমৎকার. কেন আমাকে পিএইচপি তাই বিভিন্ন কুশ্রী ফাংশন নাম হয়েছে মনে করিয়ে দেয় কারণ প্রথম অনুবাদক হ্যাশ ফাংশন ও বন্টন যেমন strlen ব্যবহৃত ভাল (হওয়া উচিত i-programmer.info/news/98-languages/... )
Aitch

10
সি ++ 11-এ প্রসঙ্গ-সংবেদনশীল কীওয়ার্ডগুলির প্রবর্তন কীওয়ার্ডগুলির কারণে যুক্ত ক্ষতিটিকে হ্রাস করেছে। এটা তোলে করা সম্ভব হওয়া উচিত pureএকটি প্রাসঙ্গিক শব্দ আপনি একটি ফাংশন সংজ্ঞা শেষে করা, তাই virtual void MyFunction() pureএর পরিবর্তে = 0সঙ্গে বরাবর যেতে, finalএবং override
ইয়াক্ক 20'15

21
একদিকে যেমন, প্রায় সর্বত্র একটি "খাঁটি ফাংশন" এমন একটি ফাংশন হিসাবে বোঝা যায় যার আউটপুট কেবল তার ইনপুটের উপর নির্ভর করে এবং যার কোনও পার্শ্ব-প্রতিক্রিয়া নেই।
Deduplicator

2
খুব সুন্দর "কেন সি ++ এক্স করে?" এর যে কোনও প্রশ্ন? উত্তর দেওয়া যেতে পারে যে বই দ্বারা। এটি যে কোনও গুরুতর সি ++ প্রোগ্রামারের জন্য পড়া দরকার।
রোবট

4
@ র্যান্ডম 832 এটি কেবল "খাঁটি" নয়, এটি "খাঁটি ভার্চুয়াল" ("100% ভার্চুয়াল এবং 0% অন্য কোনও কিছু হিসাবে")
ব্যবহারকারী 253751
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.