মনে রাখবেন, সি / সি ++ প্রিপ্রসেসর একটি পৃথক, নিখুঁত পাঠ্য, প্রক্রিয়াকরণ পদক্ষেপ। #includeঅন্তর্ভুক্ত শিরোনামের বিষয়বস্তুতে নির্দেশ টানাপড়েনে কম্পাইলার এটা বিশ্লেষণ করতে হয়েছে। তদুপরি, প্রত্যেকটির সংকলন .cppসম্পূর্ণ পৃথক, সুতরাং B.hসংকলন করার সময় কেবলমাত্র সংকলকটি পার্স করা হয়েছে B.cppতা সংকলনের সময় যখন আবার প্রয়োজন হয় তখন এটি কমপক্ষে সহায়তা করে না A.cpp। এবং আবার সংকলনের সময় C.cpp। এবং D.cpp। ইত্যাদি। এর মধ্যে অন্তর্ভুক্ত থাকা কোনও ফাইল পরিবর্তন হলে সেই ফাইলগুলির প্রত্যেকটিই পুনরায় সংযুক্ত করতে হবে।
তাই বলে বর্গ Aব্যবহারসমূহ বর্গ Bএবং ক্লাস Cএবং Dব্যবহার বর্গ Aকিন্তু নিপূণভাবে প্রয়োজন হবে না B। ক্লাসটি যদি Aকেবলমাত্র দু'বার সংকলিত Bহওয়ার চেয়ে সামনের ফরওয়ার্ড-ডিক্লেয়ারেশন দিয়ে ঘোষণা B.hকরা যায়: সংকলন করার সময় B.cppএবং A.cpp(কারণ Bএখনও Aএর পদ্ধতিগুলির অভ্যন্তরে প্রয়োজন )।
কিন্তু যখন A.hঅন্তর্ভুক্ত B.h, এটিকে কম্পাইল করা হয় চার বার-যখন কম্পাইল B.cpp, A.cpp, C.cppএবং D.cppপরবর্তী দুই এখন পরোক্ষভাবে অন্তর্ভুক্ত হিসাবে B.hখুব।
এছাড়াও যখন শিরোনাম একাধিকবার অন্তর্ভুক্ত করা হয়, তখনও প্রিপ্রেসেসরটি প্রতিবার এটি পড়তে হয় । গার্ডিংয়ের কারণে এটি এর সামগ্রীতে প্রসেসিং এড়িয়ে যাবে #ifdef, তবে এটি এখনও এটি পড়ে এবং গার্ডের শেষের সন্ধান করা দরকার, যার অর্থ এটি ভিতরে সমস্ত প্রিপ্রসেসর নির্দেশিকা বিশ্লেষণ করতে হবে।
(অন্য উত্তরে উল্লিখিত হিসাবে, পূর্বনির্ধারিত শিরোনামগুলি এটিকে ঘিরে কাজ করার চেষ্টা করা হয়, তবে এগুলি তাদের নিজস্ব কৃমি হতে পারে; মূলত আপনি এগুলি সিস্টেম শিরোনামের জন্য যুক্তিসঙ্গতভাবে ব্যবহার করতে পারেন এবং কেবল যদি আপনি তাদের খুব বেশি ব্যবহার না করেন তবে এর জন্য নয়) আপনার প্রকল্পের শিরোনাম)
vehicle.h,bus.h,toybus.h।vehicle.hদ্বারা অন্তর্ভুক্তbus.hএবং দ্বারাbus.hঅন্তর্ভুক্তtoybus.h। তাই যদি আমি কিছু পরিবর্তন করিbus.h। সংকলকটিvehicle.hআবার কি খোলে এবং বিশ্লেষণ করে ? এটি আবার সংকলন করে?