5
เหตุใดฉันจึงไม่สามารถประกาศคลาสในเนมสเปซโดยใช้ double colons ได้
class Namespace::Class; ทำไมฉันต้องทำสิ่งนี้: namespace Namespace { class Class; } การใช้ VC ++ 8.0 ปัญหาเกี่ยวกับคอมไพเลอร์: ข้อผิดพลาด C2653: 'Namespace': ไม่ใช่ชื่อคลาสหรือเนมสเปซ ฉันคิดว่าปัญหาที่นี่คือคอมไพเลอร์ไม่สามารถบอกได้ว่าNamespaceเป็นคลาสหรือ namespace หรือไม่? แต่ทำไมเรื่องนี้ถึงเกิดขึ้นเพราะมันเป็นเพียงการประกาศล่วงหน้า มีวิธีการส่งต่อประกาศคลาสที่กำหนดไว้ในบาง namespace หรือไม่ ไวยากรณ์ข้างต้นรู้สึกเหมือนฉัน "เปิดใหม่" namespace และขยายคำจำกัดความ เกิดอะไรขึ้นถ้าClassไม่ได้นิยามไว้จริง ๆNamespace? บางครั้งจะส่งผลให้เกิดข้อผิดพลาดหรือไม่?
164
c++
namespaces