Próbowałem następujący wiersz:
static const const char* values[];
ale pojawia się następujące ostrzeżenie na VC++ ostrzeżenie C4114: kwalifikator tego samego typu stosuje się więcej niż jeden raz.
Co to jest poprawna deklaracja?
edit:
Celem jest stworzenie niezmienne tablicę c ciągówJak utworzyć statyczną tablicę const const char *
Odpowiedz
Napisałeś const const
zamiast static const char* const values[];
(gdzie można zdefiniować wskaźnik i wartości leżących u podstaw jak const
)
Ponadto, trzeba go zainicjować:
static const char* const values[] = {"string one", "string two"};
+1, Ale inicjalizacja zależy od kontekstu, jeśli jest to "statyczny" element klasy (moje przypuszczenie), to bez inicjalizacji można to zrobić w deklaracji ... –
Czy rozumiem poprawnie, pierwsza stała jest dla ciągu, a druga dla tablicy? – Tommy
Aby wyjaśnić słowo kluczowe "const": "const" jest zawsze związane z "elementem" pozostawionym do niego. Wyjątkiem jest to, że gdy const jest pierwszym słowem w wyrażeniu, odnosi się ono bezpośrednio do niego. Aby być super-poprawnym, należy zdefiniować ciąg jako "static char const * const values []", który można odczytać od prawej do lewej: wartości są tablicą stałych wskaźników do stałych znaków, a wszystko to jest statyczne. – AquilaRapax
Spróbuj
static const char* const values[];
Chodzi o to, aby umieścić dwie const
s po obu stronach *
: lewy należy do char
(stały charakter), prawo należy do char*
(stały wskaźnik do znaku)
Na marginesie jest to to samo, co 'static char const * const values []' – Dennis
- 1. C: Przypisywanie "static const char * const" do "const static char *"
- 2. jak konwertować const WCHAR * na const char *
- 3. Konwertuj const char * na const wchar_t *
- 4. Jak rozpoznać typ const char * i const char [] w kodzie?
- 5. Double to Const Char *
- 6. const char pointer przypisania
- 7. Jak skopiować zawartość zmiennej const char * type?
- 8. Niejawna konwersja z char ** na const char **
- 9. const constexpr char * vs. constexpr char *
- 10. Konwersja NSString na const char
- 11. Czy int main (int, char const * const *) jest dobrze uformowany?
- 12. C++ wskaźnik do tablicy const const wskaźniki
- 13. Jak przekonwertować std :: string na const char *?
- 14. Jak przekonwertować wchar_t * na const char *
- 15. Jak przekonwertować LPCWSTR na const char *?
- 16. funkcja przeciążenia: const * vs const &
- 17. dla const odniesienia do const wskaźnik wskazujący na const obiektu
- 18. const vs new const
- 19. Inno Setup: Jak zdefiniować tablicę w const?
- 20. sizeof dla zakończonej znakiem zero const char *
- 21. Delphi PChar do C++ const char *
- 22. const unsigned char * na std :: string
- 23. Python to C/C++ const char question
- 24. C++ 11 rodzaj odliczenie vs const char *
- 25. nieprawidłowy konwersji z „const char *” do „char *” [-fpermissive]
- 26. Modyfikacja przez const const wskaźnik
- 27. Kłopoty z const const rozdzielczości
- 28. const char * na wektor <unsigned char> Inicjalizacja
- 29. Czysty sposób przekonwertować QString na char * (nie const char * !!!!)
- 30. C++ Błąd: Nieprawidłowy konwersji z 'char' do 'const char *'
Co chcesz utworzyć? Tablica stałych wskaźników do stałych postaci? –