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