(যা প্রোগ্রামের সময়কালে এর মানকে পরিবর্তন করতে পারে)
বা 'কোনও কিছুর উদাহরণ' ক্লাস এবং অবজেক্টের সাথে কঠোরভাবে সম্পর্কিত? যদি তাই হয়, আপনি যখন সি ++ এ আসবেন তখন 'পরিবর্তনশীল' ধারণাটি কীভাবে সংজ্ঞায়িত করবেন?
(যা প্রোগ্রামের সময়কালে এর মানকে পরিবর্তন করতে পারে)
বা 'কোনও কিছুর উদাহরণ' ক্লাস এবং অবজেক্টের সাথে কঠোরভাবে সম্পর্কিত? যদি তাই হয়, আপনি যখন সি ++ এ আসবেন তখন 'পরিবর্তনশীল' ধারণাটি কীভাবে সংজ্ঞায়িত করবেন?
উত্তর:
আমি যতদূর জানি, সেই ধরণের প্রাকৃতিক উদাহরণগুলির মানগুলি কল করা সঠিক (উদাহরণস্বরূপ "সি ++ টাইপ সিস্টেম" , ভিজ্যুয়াল স্টুডিওর ম্যানুয়াল থেকে, তবে আমি এখনও অন্য উত্সের সন্ধান করছি), যদিও আমি বিশ্বাস করি এই শব্দটি অবজেক্টগুলি নিয়ে আলোচনা করার সময় বেশিরভাগ ব্যবহৃত হয়। একটি অবজেক্টটি ক্লাস সি এর উদাহরণ, যদি এটি নির্মাণ করা হয় কনস্ট্রাক্টর থেকে তৈরি করা হয় ক্লাস সি বা এর যে কোনও একটি সাবক্লাসে।
সি ++ এ পরিবর্তনশীল কোনও রানটাইম ধারণা নয়। এটি আপনার সংকলকের অভ্যন্তরে ভেরিয়েবলের নাম এবং একটি বিমূর্ত (কনস্ট না হলেও পরিবর্তনযোগ্য) অবস্থানের মধ্যে একটি লেজিকাল বাইন্ডিং হিসাবে উপস্থিত রয়েছে। কোনও প্রোগ্রাম সংকলিত হয়ে গেলে, ভেরিয়েবলগুলি আর থাকে না। পরিবর্তে, রেজিস্টার, মেমরি ইত্যাদিতে ডেটা পড়া এবং লেখা হয় is
int
। ভেরিয়েবল ডিক্লেয়ারেশন কী করে তা নিয়ে কথা বলার সময় সি ++ স্ট্যান্ডার্ড আদিম ধরণের এবং অ-আদিম ধরণের মধ্যে পার্থক্য তৈরি করে না। সুতরাং T t;
প্রকারের কোনও বস্তু ঘোষণা করে, প্রকারটি T
যাই হোক না কেন তা T
বিবেচনা করুন।
বা 'কোনও কিছুর উদাহরণ' ক্লাস এবং অবজেক্টের সাথে কঠোরভাবে সম্পর্কিত? যদি তাই হয়, আপনি যখন সি ++ এ আসবেন তখন 'পরিবর্তনশীল' ধারণাটি কীভাবে সংজ্ঞায়িত করবেন?
এটি সি ++ এর জন্য যথাসম্ভব সংক্ষিপ্তভাবে স্থাপন করা
শুধু পরিষ্কার করা:
malloc()
'এড, তবে অবিবেচনাবিহীন বাফার সম্পর্কে কথা বলবেন তখন আপনার একটি বক্তব্য রয়েছে : এটি একটি স্মৃতি অঞ্চল যা এখনও কোনও অবজেক্ট নয়। তেমনি, এমন একটি বস্তু যা স্পষ্টভাবে ধ্বংস হয়ে গেছে: এটি একটি স্মৃতি অঞ্চল যা এখন অবজেক্ট নয়।
আচ্ছা, "সঠিক" অর্থ কী?
আমরা যদি এটি সম্পর্কে কঠোর হতে চাই তবে আমাদের মধ্যে পার্থক্য করা দরকার:
আমি তখন একটি পরিবর্তনশীল হচ্ছে একটি অভিব্যক্তি-হবে আছে একটি টাইপ। এর মান — যে বিষয়টিকে এটি উল্লেখ করে এটি কোনও শ্রেণির উদাহরণ হতে পারে। এবং নোট করুন যে ভেরিয়েবলের ধরণ এবং অবজেক্টের ক্লাস সাধারণত একই জিনিস নয় — ভেরিয়েবলের স্ট্যাটিক টাইপটি অবজেক্টের রানটাইম ক্লাসগুলির উপর একটি উপরের আবদ্ধ রাখে , যাতে ক্লাসগুলি অবশ্যই শ্রেণীর উপ -টাইপ হতে হবে যা টাইপের সাথে মিল রাখে।
আপনি কি সর্বদা সেই বড় মুখের পুনরাবৃত্তি করতে চান? হেক নং বনাম কতটা কড়াভাবে আমরা কথা বলতে চাই তা নির্ভর করে প্রসঙ্গে। তাই প্রায়শই এটি বলতে সমস্যা হয় না যে "ভেরিয়েবল এই ধরণের একটি উদাহরণ"। সত্যিই সেখানে যা ঘটছে তা হ'ল আমরা ভেরিয়েবল এবং টাইপটি মেটোনাইমিকভাবে ব্যবহার করছি তার রানটাইম ক্লাসের অবজেক্ট এবং একটি সুপারক্লাসের জন্য।
আপনি নিজের পুরো জীবন শুদ্ধিকতা এবং পরিশীলিততায় ব্যয় করতে না চাইলে ... হ্যাঁ।
প্রতিবার যখন আপনি এমন কিছু রাখেন যা অনন্যতাকে অন্যরকম স্বীকৃত জিনিসগুলি ইনস্ট্যান্টেশন করার জন্য জাল করতে ব্যবহারকে চিহ্নিত করে।
এই ইনস্ট্যান্টেশনগুলির কিছুটির আরও সঠিক নাম থাকতে পারে তবে সাধারণভাবে এটি কাজ করে।
অনেক লোক ক্লাসের উদাহরণগুলির জন্য "উদাহরণ" সংরক্ষণ করে। আপনি যদি সি ++ তে এটি করেন তবে একটি ভেরিয়েবল কোনও শ্রেণীর উদাহরণ, উদাহরণের উল্লেখ, কোনও উদাহরণের পয়েন্টার বা আদিম ধরণের হতে পারে (আপনি সম্ভবত সেই প্রসঙ্গে ক্লাস হিসাবে স্ট্রাক্ট গণনা করতে পারেন, তারা প্রায় সম্পূর্ণ একই)। জাভা বা অবজেক্টিভ-সিতে ভেরিয়েবলগুলি কখনই দৃষ্টান্ত হতে পারে না তবে সম্ভবত উদাহরণগুলির উল্লেখ to
ভুলে গেছেন: অল্প সময়ের জন্য, একটি সি ++ পয়েন্টার কাঁচা মেমরির পয়েন্টার হতে পারে, উদাহরণস্বরূপ কনস্ট্রাক্টর কার্যকর করা শুরু করার আগে "এটি"। আপনি সম্ভবত এই মুহূর্তে * এটি কল করতে চাইবেন না।