class Namespace::Class;
Mengapa saya harus melakukan ini ?:
namespace Namespace {
class Class;
}
Menggunakan VC ++ 8.0, masalah kompiler:
kesalahan C2653: 'Namespace': bukan nama kelas atau namespace
Saya berasumsi bahwa masalahnya di sini adalah bahwa kompiler tidak dapat menentukan apakah Namespace
kelas atau namespace? Tapi mengapa ini penting karena itu hanya deklarasi maju?
Apakah ada cara lain untuk meneruskan-mendeklarasikan kelas yang didefinisikan dalam beberapa namespace? Sintaks di atas terasa seperti saya "membuka kembali" namespace dan memperluas definisinya. Bagaimana jika Class
sebenarnya tidak didefinisikan dalam Namespace
? Apakah ini akan menghasilkan kesalahan di beberapa titik?
A::B
dalam A
adalah identifier namespace bukan nama kelas?
Namespace
kelas atau namespace. Hanya saja, jangan mendekati petunjuk kemungkinan memulai perang api bahasa atas sintaksis.