• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zadawana wartosc string w konstruktorze

Object Storage Arubacloud
0 głosów
348 wizyt
pytanie zadane 8 grudnia 2015 w C i C++ przez Maciej Terepko Nowicjusz (230 p.)
Witam, jak wyglada tablica stringow z podana wartoscia w konstruktorze, mi wyskakuje ze wartosc nie jest stała.

1 odpowiedź

0 głosów
odpowiedź 8 grudnia 2015 przez Boshi VIP (100,240 p.)
  int tab[5] = {1, 3, 0, 0, 0};
komentarz 8 grudnia 2015 przez Maciej Terepko Nowicjusz (230 p.)
W kalsie czlowiek uwtórz tablicę ulubioneKsiazki w rozmiarze n (podawanych w konstruktorze) obiektów klasy String.
komentarz 8 grudnia 2015 przez Boshi VIP (100,240 p.)
class czlowiek
{
 string tab[4];
 
};

 

Z tego co na SO piszą, to nie możesz dynamicznie przydzielać pamięci dla tablicy, dlatego wywala non-const.

 

 

komentarz 8 grudnia 2015 przez Maciej Terepko Nowicjusz (230 p.)
class czlowiek
{
int=n;
string tab[n];

};
czlowiek::czlowiek()
{
n=3;

}

nie powinno to wygladac raczej tak? tylko w ten sposob mi nie dziala

komentarz 8 grudnia 2015 przez adrian17 Ekspert (344,860 p.)
To nie tylko nie ma prawa działać, jak powiedział Boshi, ale Twój ostatni kod w ogóle nie ma takiegokolwiek sensu. Jak przypiszesz liczbę do n to rozmiar tablicy przecież się magicznie nie zmieni.

Musisz po prostu zaakolować tablicę dynamicznie (lub lepiej, użyć std::vector)
komentarz 8 grudnia 2015 przez criss Mędrzec (172,590 p.)

Większość kompilatorów nie łyknie czegoś takiego (zgodnie ze standardem):

int n = 3;
string tab[n];

n musi być stałą (const), albo zaalokuj tablice dynamicznie (operator new[ ]) - wtedy string tab[n] jest dopuszczalne.

komentarz 8 grudnia 2015 przez adrian17 Ekspert (344,860 p.)
(Criss, akurat GCC i Clang to łykną, tylko MSVC nie. Ale fakt, standard nie pozwala)
komentarz 8 grudnia 2015 przez criss Mędrzec (172,590 p.)
Mój nie łyka z flagą c++11.
komentarz 8 grudnia 2015 przez adrian17 Ekspert (344,860 p.)
Hm, u mnie, o ile nie włączysz -pedantic oba pozwalają na VLA typów prostych, ale nie zauważyłem że Clang blokuje VLA typów w konstruktorami (std::string). Ciekawe.
komentarz 8 grudnia 2015 przez criss Mędrzec (172,590 p.)
W zasadzie już nie pamiętam przy jkaim typie mi nie pozwolił.. To było dawno i od tego czasu ani razu nie próbowałem.

Podobne pytania

0 głosów
1 odpowiedź 1,646 wizyt
pytanie zadane 29 stycznia 2017 w C i C++ przez robRoy Użytkownik (970 p.)
0 głosów
1 odpowiedź 207 wizyt
pytanie zadane 14 kwietnia 2020 w C i C++ przez nanautzin Obywatel (1,510 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 21 października 2019 w JavaScript przez exiro44 Początkujący (370 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...