আপনি পুরোপুরি সি ++ তে কোকো অ্যাপ্লিকেশন লিখতে পারবেন না। কী-ভ্যালু বাইন্ডিংস, ডেলিগেটস (কোকো স্টাইল) এবং টার্গেট-অ্যাকশন প্যাটার্নের মতো অনেকগুলি মূল প্রযুক্তিগুলির জন্য ওজেক্টিভ-সি এর দেরীতে আবদ্ধ করার ক্ষমতার উপর কোকো প্রচুর নির্ভর করে। দেরীতে বাইন্ডিংয়ের প্রয়োজনীয়তাগুলি সি ++ like এর মতো টাইপিত ভাষার সংকলন-সময়সীমার মধ্যে কোকো এপিআই প্রয়োগ করা খুব কঠিন করে তোলে ⁱ আপনি, অবশ্যই, একটি খাঁটি সি ++ অ্যাপ্লিকেশন লিখতে পারেন যা ওএস এক্সে চলে। এটি কেবল কোকো এপিআইগুলি ব্যবহার করতে পারে না।
সুতরাং, আপনি যদি অন্য প্ল্যাটফর্মের সি ++ অ্যাপ্লিকেশন এবং আপনার কোকো ভিত্তিক অ্যাপ্লিকেশনগুলির মধ্যে কোড ভাগ করতে চান তবে আপনার কাছে দুটি বিকল্প রয়েছে। প্রথমটি হল C ++ এ মডেল স্তর এবং কোকোতে GUI লিখুন। এটি ম্যাথমেটিকাসহ কয়েকটি খুব বড় অ্যাপ্লিকেশান দ্বারা ব্যবহৃত একটি সাধারণ পন্থা । আপনার সি ++ কোডটি অপরিবর্তিত রেখে দেওয়া যেতে পারে (ওএস এক্সে সি ++ লিখতে বা সংকলনের জন্য আপনার "ফানকি" আপেল এক্সটেনশনগুলির প্রয়োজন নেই)। আপনার নিয়ামক স্তরটি সম্ভবত উদ্দেশ্য-সি ++ ব্যবহার করবে (সম্ভবত "মজাদার" অ্যাপল এক্সটেনশান আপনি উল্লেখ করেছেন)। অবজেক্টিভ-সি ++ হ'ল সি ++ এর একটি সুপারসেট, যেমন ওজেক্টিভ-সি সি-র একটি সুপারসেট, অবজেক্টিভ-সি ++ তে আপনি [some-objc-object callMethod];
সি ++ ফাংশনের মধ্যে থেকে অবজেক্ট-স্টাইল মেসেজ পাসিং কলগুলি (যেমন ) করতে পারেন । বিপরীতে, আপনি ওবিজেসি কোডের মধ্যে থেকে সি ++ ফাংশনগুলি কল করতে পারেন:
@interface MyClass {
MyCPPClass *cppInstance;
}
@end
@implementation MyClass
- (id)init {
if(self = [super init]) {
cppInstance = new MyCPPClass();
}
return self;
}
- (void) dealloc {
if(cppInstance != NULL) delete cppInstance;
[super dealloc];
}
- (void)callCpp {
cppInstance->SomeMethod();
}
@end
আপনি উদ্দেশ্য-সি ভাষা সম্পর্কে আরও জানতে পারেন - উদ্দেশ্য-সি ভাষা নির্দেশিকাতে । এরপরে দৃশ্য স্তরটি বিশুদ্ধ অবজেক্টিভ-সি হতে পারে।
দ্বিতীয় বিকল্পটি হ'ল ক্রস-প্ল্যাটফর্ম সি ++ টুলকিট ব্যবহার করা। কিউটিটুলকিটটি বিলটি ফিট করতে পারে। ক্রস প্ল্যাটফর্মের সরঞ্জামকিটগুলি ম্যাক ব্যবহারকারীরা সাধারণত ঘৃণা করেন কারণ তারা সমস্ত চেহারা খুঁজে পান না এবং বিবরণটি ঠিক ঠিক অনুভব করে না এবং ম্যাক ব্যবহারকারীরা ম্যাক অ্যাপ্লিকেশনগুলির ইউআইতে পোলিশ আশা করে। কিউটি আশ্চর্যজনকভাবে ভাল কাজ করে, তবে দর্শকদের এবং আপনার অ্যাপ্লিকেশনটির ব্যবহারের উপর নির্ভর করে এটি যথেষ্ট ভাল হতে পারে। এছাড়াও, আপনি কিউটি এপিআই-তে আনুমানিক প্রতিস্থাপনের পরেও কিছু OS X- নির্দিষ্ট প্রযুক্তি যেমন কোর অ্যানিমেশন এবং কিছু কুইকটাইম কার্যকারিতা হারাবেন। আপনি উল্লেখ হিসাবে, কার্বন 64-বিট পোর্ট করা হবে না। যেহেতু কিউটি কার্বন এপিআইগুলিতে প্রয়োগ করা হয়েছে, তাই ট্রলটেক / নোকিয়া কেও কোপিও এপিআইতে 64৪-বিট সামঞ্জস্যপূর্ণ করতে পোর্ট করতে হয়েছিল। আমার বোধগম্যতা হ'ল কিউটির পরবর্তী সম্পর্কিত (বর্তমানে রিলিজ মোমিয়েটতে রয়েছে)) এই রূপান্তরটি সম্পূর্ণ করে এবং ওএস এক্সের সাথে 64৪-বিট সামঞ্জস্যপূর্ণ you're. আপনি যদি সি ++ এবং কোকো API গুলি সংহত করতে আগ্রহী হন তবে Qt 4.5 এর উত্সটি একবার দেখতে চান।
While কিছুক্ষণের জন্য অ্যাপল জাভাতে কোকো এপিআই সরবরাহ করেছিল, তবে সেতুর জন্য হ্যান্ড-টিউনিংয়ের ব্যাপক প্রয়োজন ছিল এবং উপরে বর্ণিত কী-ভ্যালু বাইন্ডিংয়ের মতো আরও উন্নত প্রযুক্তিগুলি পরিচালনা করতে অক্ষম ছিল। বর্তমানে গতিশীলভাবে টাইপ করা হয়েছে, রানটাইম-বেঁধে থাকা পাইথন, রুবি ইত্যাদির মতো ভাষাগুলি হ'ল অবজেক্টিভ-সি ছাড়াই কোকো অ্যাপ্লিকেশন লেখার একমাত্র আসল বিকল্প (যদিও এই ব্রিজগুলি হুডের নীচে উদ্দেশ্য-সি ব্যবহার করে)।