ব্যক্তিগত ভেরিয়েবলগুলি কোনও শ্রেণীর ব্যবহারকারীর কাছে জটিলতা এবং প্রয়োগের বিবরণগুলি গোপন করার একটি উপায়। এটি বরং একটি দুর্দান্ত বৈশিষ্ট্য। তবে আমি বুঝতে পারি না যে কেন সি ++ এ তাদের আমাদের একটি শ্রেণির শিরোনামে স্থাপন করা দরকার। আমি এতে দুটি বিরক্তিকর উত্সাহ দেখতে পাচ্ছি:
- এটি ব্যবহারকারীর কাছ থেকে শিরোনামকে গোলমাল করে
- এটি যখনই ইন্টার্নালগুলি সংশোধন করা হয় তখন সমস্ত ক্লায়েন্ট লাইব্রেরির পুনরায় সংকলন করতে বাধ্য করে
এই প্রয়োজনের পিছনে কি কোনও ধারণামূলক কারণ রয়েছে? এটি কি কেবল সংকলকটির কাজ সহজ করার জন্য?
struct foo{};
) অনুমোদিত নয়, তবে এগিয়ে ঘোষণা ( struct foo;
) রয়েছে।