Czy klasa lokalna, klasa wewnętrzna i klasa zagnieżdżona oznaczają to samo w C++?Czy klasa lokalna, klasa wewnętrzna i klasa zagnieżdżona to te same rzeczy w C++?
Odpowiedz
Klasa lokalna i klasa zagnieżdżona to różne bestie.
A Zagnieżdżona klasa jest klasą zadeklarowaną w ramach innej klasy.
A Lokalna klasa jest zadeklarowana w definicji funkcji.
Wewnętrzna klasa jest niestandardowym terminem C++, więc nie jestem pewien, jak to zdefiniować.
zagnieżdżone Ćwiczenia:
IBM Documentation jako miły dokumentacji here.
Podsumowując:
- Nazwa klasy zagnieżdżonej jest lokalny do tej klasy okalającego. Jeśli nie używasz wyraźnych wskaźników, referencji lub nazw obiektów, deklaracje w klasie zagnieżdżonej mogą używać tylko widocznych konstrukcji, w tym nazw typów, elementów statycznych i modułów wyliczających z klasy otaczającej i zmiennych globalnych.
- Funkcje członkowskie klasy zagnieżdżonej są zgodne z normalnymi regułami dostępu i nie mają specjalnych uprawnień dostępu dla członków ich klas. funkcje składowe klasy otaczającej nie mają specjalnego dostępu do członków klasy zagnieżdżonej
Lokalne klasy:
Ta odpowiedź kopalni here dokumentuje subtelne punkty związane z miejscowymi klasami.
Cytowanie projekt C++ 11 (N3290)
9,7 zgłoszenia klasy zagnieżdżone [class.nest]
1 Klasa może być zadeklarowane w innej klasy. Klasa zadeklarowana w innym jest nazywana klasą zagnieżdżoną .
9.8 Lokalne deklaracje klasy [class.local]
1 Klasa może zostać uznane w definicji funkcji; taka klasa nazywa się klasą lokalną.
Nie ma koncepcji klasy wewnętrznej określonej w standardzie C++.
Klasy wewnętrzne przechwytują odwołanie do klauzuli otaczającej klasy: this
. Hierarchia instancji klasy wewnętrznej tworzy strukturę drzewa. Jest to unikalne dla Javy.
- 1. Czy to jest wewnętrzna klasa?
- 2. Wewnętrzna klasa w Javie
- 3. C++ - Wiesz, czy typ/klasa jest zagnieżdżona?
- 4. Statyczna klasa wewnętrzna i statyczny członek klasy akcji SAME NAME?
- 5. Zagnieżdżona klasa wewnątrz interfejsu
- 6. C# klasa zagnieżdżona Dostęp nadrzędna Użytkownik
- 7. Java wewnętrzna klasa widoczność puzzle
- 8. wewnętrzna klasa dostęp do zewnętrznej metody klasy, same nazwy metod
- 9. Wiążący konwerter jako wewnętrzna klasa?
- 10. Konwencja nazewnictwa klas C: Czy jest to klasa BaseClass lub klasa klasy lub Klasa abstrakcyjna
- 11. Klasa podstawowa vs Klasa użyteczności
- 12. Klasa ogólna klasa
- 13. Prywatna zagnieżdżona klasa Java w diagramie UML
- 14. Pusta anonimowa klasa wewnętrzna w java
- 15. Skręcona klasa wewnętrzna w języku Java
- 16. Klasa wewnętrzna uzyskująca dostęp do klasy zewnętrznej
- 17. Czy istnieje klasa IndexSet i klasa Range dla Java?
- 18. Prywatna klasa wewnętrzna syntezuje nieoczekiwaną anonimową klasę
- 19. Klasa abstrakcyjna lub pomocnik Klasa
- 20. Jackson Json Typ Mapowanie Wewnętrzna klasa
- 21. klasa C++ szablonu i dziedziczenie
- 22. ZipPackage Klasa vs Zipfile klasa
- 23. Czy lokalna klasa w metodzie klasy jest przyjacielem tej klasy?
- 24. obiektyw c stałe klasa
- 25. Cel C - Klasa KeyValuePair?
- 26. Co to jest klasa wartości i jaka jest klasa odniesienia w języku C#?
- 27. Zarządzana klasa C++ ref.
- 28. Klasa C# bez konstruktora
- 29. C++ wykrywa matrycy klasa
- 30. Konwersja C# klasa JavaScript
I nie ma wewnętrznych klas w C++. To jest koncepcja Java. –