"আপনি যদি সত্যিই ওও চিনি চান - তবে সি ++ ব্যবহার করুন" - এটি জিজ্ঞাসা করার পরে আমার এক বন্ধুর কাছ থেকে আমি পেয়েছিলাম তাত্ক্ষণিক প্রতিক্রিয়া। আমি জানি এখানে দুটি জিনিস মারা গেছে। প্রথম ওও 'চিনি' নয়, এবং দ্বিতীয়টি, সি ++ সি-কে শোষণ করে নি has
আমাদের সিতে একটি সার্ভার লিখতে হবে (প্রথম প্রান্ত যা পাইথন হবে), এবং তাই আমি বড় সি প্রোগ্রাম পরিচালনা করার আরও ভাল উপায়গুলি অন্বেষণ করছি।
অবজেক্ট এবং পদার্থের ক্রিয়াকলাপগুলির ক্ষেত্রে একটি বৃহত সিস্টেমের মডেলিং এটিকে আরও পরিচালনাযোগ্য, রক্ষণাবেক্ষণযোগ্য এবং এক্সটেনসিবল করে তোলে। তবে আপনি যখন এই মডেলটিকে সিতে অনুবাদ করার চেষ্টা করবেন যা বস্তুগুলি (এবং এর সমস্ত কিছু) বহন করে না, আপনাকে কিছু গুরুত্বপূর্ণ সিদ্ধান্তের সাথে চ্যালেঞ্জ দেওয়া হয়েছে।
আপনার সিস্টেমে যে ও ও অ্যাস্ট্রাকশনগুলি প্রয়োজন তার জন্য আপনি কি একটি কাস্টম লাইব্রেরি তৈরি করেন? অবজেক্টস, এনক্যাপসুলেশন, উত্তরাধিকার, পলিমারফিজম, ব্যতিক্রম, পাব / সাব (ইভেন্টস / সিগন্যাল), নেমস্পেসস, ইন্ট্রোস্পেকশন ইত্যাদির মতো বিষয় (উদাহরণস্বরূপ গবজেক্ট বা সিওএস )।
বা, আপনি struct
অ্যাড-হক উপায়ে আপনার সমস্ত বস্তুর শ্রেণি (এবং অন্যান্য বিমূর্ততা) আনুমানিক করতে কেবল সি সি কনস্ট্রাক্ট ( এবং ফাংশন) ব্যবহার করেন use (উদাহরণস্বরূপ, এসও-তে এই প্রশ্নের কয়েকটি উত্তর )
প্রথম পদ্ধতির আপনাকে সিতে আপনার পুরো মডেলটি বাস্তবায়নের জন্য একটি কাঠামোগত উপায় দেয় তবে এটি আপনাকে বজায় রাখা জটিলতার একটি স্তরও যুক্ত করে। (মনে রাখবেন, জটিলতা হ'ল আমরা প্রথমে বস্তু ব্যবহার করে হ্রাস করতে চেয়েছিলাম)।
দ্বিতীয় পদ্ধতির বিষয়ে আমি জানি না এবং আপনার যে সমস্ত বিমূর্ততা লাগতে পারে এটি প্রায় কার্যকর করতে এটি কতটা কার্যকর।
সুতরাং, আমার সাধারণ প্রশ্নগুলি হ'ল সি তে কোনও অবজেক্ট ওরিয়েন্টড ডিজাইন অনুধাবনের সেরা অনুশীলনগুলি কী কী মনে রাখবেন আমি কীভাবে এটি করতে বলছি না। এটি এবং এই প্রশ্নগুলি এটি সম্পর্কে কথা বলে এবং এটি সম্পর্কে একটি বই এমনকি রয়েছে । আমি যে বিষয়ে আরও আগ্রহী তা হ'ল এমন কিছু বাস্তব পরামর্শ / উদাহরণ যা ডংয়ের সময় প্রদর্শিত প্রকৃত সমস্যাগুলিকে সম্বোধন করে।
দ্রষ্টব্য: দয়া করে কেন সি ++ এর পক্ষে সি ব্যবহার করা উচিত তা পরামর্শ করবেন না। আমরা সেই পর্যায়ে পেরিয়ে গেছি।
extern "C"
এবং পাইথন থেকে ব্যবহার করা যায়। আপনি এটি ম্যানুয়ালি করতে পারেন বা SWIG আপনাকে এটিতে সহায়তা করতে পারে। সুতরাং পাইথন ফ্রন্ট্যান্ডের জন্য আকাঙ্ক্ষা সি ++ ব্যবহার না করার কোনও কারণ নয়। এটি তাই বলে না যে সি এর সাথে থাকার কোনও বৈধ কারণ নেই