Credo che la capacità di fare riferimento a strutture nidificate al di fuori della struttura sia stata rimossa in C++ per migliorare l'occultamento dei dati. Se è necessario accedere a una struttura nidificata esternamente, probabilmente non dovrebbe essere una struttura nidificata in primo luogo.
Wikipedia dice: "Sia in C che in C++ si possono definire i tipi di struct annidati, ma l'ambito viene interpretato in modo diverso (in C++, una struttura nidificata è definita solo all'interno dell'ambito/spazio dei nomi della struttura esterna)." (http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B). Non dice perché, ma almeno riconosce la differenza.
È tuttavia possibile utilizzare l'operatore di risoluzione dello spazio dei nomi per accedere alla struttura.
fonte
2011-11-27 07:16:38
In C++ si usa 'a :: b var;' –
In qualche modo non ho mai capito che c'era una differenza ... – Mehrdad
non era th e operator :: introdotto solo in C++ insieme alla nozione stessa di diversi ambiti? – Kos