দেখে মনে হয় সি এর নিজস্ব আধা-বস্তু যেমন 'স্ট্রাক্টস' যা বস্তু হিসাবে বিবেচিত হতে পারে
আসুন আপনি এবং আমি উইকিপিডিয়া পৃষ্ঠার মাধ্যমে অবজেক্ট অরিয়েন্টেড প্রোগ্রামিংয়ে পড়ি এবং সি-স্টাইল স্ট্রাক্টের বৈশিষ্ট্যগুলি যা যা allyতিহ্যগতভাবে অবজেক্ট-ওরিয়েন্টেড স্টাইল হিসাবে বিবেচিত হয় তার সাথে মিল রাখি:
(OOP) হ'ল "অবজেক্ট" ব্যবহার করে একটি প্রোগ্রামিং দৃষ্টান্ত - ডেটা ক্ষেত্র এবং পদ্ধতিগুলির সাথে তাদের মিথস্ক্রিয়াগুলির সাথে ডেটা স্ট্রাকচার using
সি স্ট্রাক্টগুলি কি ক্ষেত্র এবং পদ্ধতিগুলি তাদের মিথস্ক্রিয়াগুলির সাথে একত্রে গঠিত ? না।
প্রোগ্রামিং কৌশলগুলিতে ডেটা বিমূর্তি, এনক্যাপসুলেশন, বার্তা, মডুলারিটি, পলিমারফিজম এবং উত্তরাধিকারের মতো বৈশিষ্ট্য অন্তর্ভুক্ত থাকতে পারে।
সি স্ট্রাক্টগুলি "ফার্স্ট ক্লাস" উপায়ে এর মধ্যে যে কোন একটি কাজ করে? না। ভাষা প্রতিটি ধাপে আপনার বিরুদ্ধে কাজ করে।
বস্তু-ভিত্তিক দৃষ্টিভঙ্গি প্রোগ্রামারটিকে এমন ডেটা স্থাপনে উত্সাহ দেয় যেখানে এটি প্রোগ্রামের বাকী অংশগুলির দ্বারা সরাসরি অ্যাক্সেসযোগ্য হয় না
সি স্ট্রাক্টগুলি কি এটি করে? না।
একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামে সাধারণত বিভিন্ন ধরণের অবজেক্ট থাকে, প্রতিটি ধরণের একটি নির্দিষ্ট ধরণের জটিল ডেটা ম্যানেজ করার জন্য বা সম্ভবত কোনও বাস্তব-জগতের বস্তু বা ধারণার সাথে সম্পর্কিত
সি স্ট্রাক্টগুলি কি এটি করে? হ্যাঁ.
তথ্যগুলি যথাযথভাবে ব্যবহার করা হচ্ছে তা নিশ্চিত করার জন্য ডিজাইন করা ফাংশনগুলির একটি সেটের মধ্যে অবজেক্টগুলি তাদের ডেটা মোড়ানো হিসাবে ভাবা যেতে পারে
না।
প্রতিটি বস্তু বার্তাগুলি গ্রহণ, ডেটা প্রক্রিয়াকরণ এবং অন্যান্য বস্তুগুলিতে বার্তা প্রেরণে সক্ষম
কোনও কাঠামো নিজেই বার্তা প্রেরণ ও গ্রহণ করতে পারে? না এটি ডেটা প্রক্রিয়া করতে পারে? না।
ওওপি ডেটা স্ট্রাকচারগুলি "তাদের নিজস্ব অপারেটরদের সাথে রাখে"
এটি কি সি-তে ঘটে? না।
ডায়নামিক প্রেরণ ... এনক্যাপসুলেশন ... সাব টাইপ পলিমॉर्फিজম ... উত্তরাধিকার অবজেক্ট করুন ... পুনরাবৃত্তি খুলুন ... বস্তুর শ্রেণি ... শ্রেণির উদাহরণ ... যে পদ্ধতিগুলি সংযুক্ত বস্তুগুলিতে কাজ করে ... বার্তা প্রেরণ .. বিমূর্ততা
সি স্ট্রাক্টগুলির এই বৈশিষ্ট্যগুলি কি কোনও? না।
স্ট্রাক্টের কোন বৈশিষ্ট্যগুলি আপনি "অবজেক্ট ওরিয়েন্টেড" বলে মনে করেন? কারণ আমি স্ট্রাক্টগুলি টাইপ সংজ্ঞায়িত করা ব্যতীত অন্য কোনও সন্ধান করতে পারি না ।
এখন, অবশ্যই আপনি স্ট্রাকগুলি তৈরি করতে পারেন যা ক্ষেত্রগুলি যা ফাংশনগুলির দিকে নির্দেশ করে। আপনার স্ট্রাক্টগুলিতে ক্ষেত্রগুলি থাকতে পারে যা ভার্চুয়াল পদ্ধতি সারণীগুলির সাথে সামঞ্জস্য করে ফাংশন পয়েন্টারগুলির অ্যারেগুলিতে পয়েন্টার। ইত্যাদি। আপনি অবশ্যই সিতে সি ++ অনুকরণ করতে পারেন তবে এটি সি তে প্রোগ্রাম করার জন্য একটি খুব অ-অহংকারী উপায়; আপনি কেবল সি ++ ব্যবহার করে আরও ভাল থাকবেন।
এবং এছাড়াও, সি ফাইলগুলি নিজেরাই মূলত পৃথক "মডিউল", তাই না? তাহলে মডিউলগুলিও 'অবজেক্টস' এর মতো নয়?
আবার, আপনি মডিউলগুলির কী বৈশিষ্ট্যগুলি ভাবছেন যা তাদেরকে বস্তুর মতো কাজ করে? মডিউলগুলি কি বিমূর্তি, এনক্যাপসুলেশন, বার্তা, মডুলারালিটি, বহুকর্ম এবং উত্তরাধিকারকে সমর্থন করে?
বিমূর্ততা এবং এনক্যাপসুলেশন বেশ দুর্বল। স্পষ্টতই মডিউলগুলি মডুলার; এ কারণেই তাদের মডিউল বলা হয়। মেসেজিং? কেবল এই অর্থে যে কোনও মেথড কল একটি বার্তা এবং মডিউলগুলিতে পদ্ধতি থাকতে পারে। পলিমরফিজ্ম? নাঃ। উত্তরাধিকার? নাঃ। মডিউলগুলি "অবজেক্টস" এর পক্ষে বেশ দুর্বল প্রার্থী।