7
เหตุใดสมาชิกข้อมูลแบบคงที่จึงต้องกำหนดนอกคลาสแยกต่างหากใน C ++ (ไม่เหมือนกับ Java)
class A { static int foo () {} // ok static int x; // <--- needed to be defined separately in .cpp file }; ฉันไม่เห็นความต้องการในการA::xกำหนดแยกต่างหากในไฟล์. cpp (หรือไฟล์เดียวกันสำหรับแม่แบบ) ทำไมไม่สามารถA::xประกาศและกำหนดในเวลาเดียวกันได้? มันถูกห้ามด้วยเหตุผลทางประวัติศาสตร์หรือไม่? คำถามหลักของฉันคือมันจะส่งผลกระทบต่อฟังก์ชั่นใด ๆ หากstaticข้อมูลสมาชิกถูกประกาศ / กำหนดในเวลาเดียวกัน (เช่นเดียวกับJava )?