Thread View: pl.comp.lang.c
6 messages
6 total messages
Started by Borneq
Fri, 07 Oct 2016 13:04
Inicjowanie konstruktora stałą tablicą
Author: Borneq
Date: Fri, 07 Oct 2016 13:04
Date: Fri, 07 Oct 2016 13:04
6 lines
995 bytes
995 bytes
mam
Mpal::Mpal(uint32_t len, int *data)
usiłuję: Mpal a(3,{ 1,2,3 });
ale jest bład:
cannot convert argument 2 from 'initializer list' to 'int *'
Re: Inicjowanie konstruktora stałą tablicą
Author: Borneq
Date: Fri, 07 Oct 2016 13:13
Date: Fri, 07 Oct 2016 13:13
11 lines
1224 bytes
1224 bytes
W dniu 07.10.2016 o 15:04, Borneq pisze:
> mam
> Mpal::Mpal(uint32_t len, int *data)
>
> usiłuję: Mpal a(3,{ 1,2,3 });
> ale jest bład:
> cannot convert argument 2 from 'initializer list' to 'int *'
gdy dodałem const to mogę
const int data0[] = { 1,2,3 };
Mpal a(3,data0);
ale jak bezpśrednio?
Re: Inicjowanie konstruktora stałą tablicą
Author: bartekltg
Date: Fri, 07 Oct 2016 14:54
Date: Fri, 07 Oct 2016 14:54
29 lines
2126 bytes
2126 bytes
On Friday, October 7, 2016 at 3:13:08 PM UTC+2, Borneq wrote:
> W dniu 07.10.2016 o 15:04, Borneq pisze:
> > mam
> > Mpal::Mpal(uint32_t len, int *data)
> >
> > usiłuję: Mpal a(3,{ 1,2,3 });
> > ale jest bład:
> > cannot convert argument 2 from 'initializer list' to 'int *'
> gdy dodałem const to mogę
> const int data0[] = { 1,2,3 };
> Mpal a(3,data0);
> ale jak bezpśrednio?
Ładujesz granatnik celując sobie w stopę.
Zaprzestań tych czynności.
Argumentem funkcji jest wskaźnik. Nie tabelka danych.
Wskaźnik można komuś oddać, zmieniać to, na co wskazuje.
A Ty chcesz tu stworzyć tylko zmienną tymczasową.
Wyjdziesz z konstruktora, danych ze wskaźnika nie ma!
A je nie wiem, czy Mpal kopiuje dane, c zy mo że kopiuje wskaźnik(!).
Po drugie, przestań sobie utrudniać życie,
używaj std::vector i std::array.
;-)
pzdr
bartekltg
Re: Inicjowanie konstruktora stałą tablicą
Author: M.M.
Date: Fri, 07 Oct 2016 19:06
Date: Fri, 07 Oct 2016 19:06
18 lines
1981 bytes
1981 bytes
On Friday, October 7, 2016 at 3:04:06 PM UTC+2, Borneq wrote:
> mam
> Mpal::Mpal(uint32_t len, int *data)
>
> usiłuję: Mpal a(3,{ 1,2,3 });
> ale jest bład:
> cannot convert argument 2 from 'initializer list' to 'int *'
Jeśli stała tablica, to jej wartości nie zmieniają się w trakcie
wykonania całego programu. Obiekty nie muszą mieć osobnej kopii.
Nie wiem czy to będzie dobre dla tego co akurat robisz, ale
odważę się zaproponować stałą tablicę statyczną, zainicjowaną
w pliku cpp.
Jeśli kilka różnych stałych tablic, to może kilka różnych klas?
Pozdrawiam
Re: Inicjowanie konstruktora stałą tablicą
Author: Borneq
Date: Fri, 07 Oct 2016 20:30
Date: Fri, 07 Oct 2016 20:30
10 lines
1463 bytes
1463 bytes
W dniu 07.10.2016 o 21:06, M.M. pisze: > odważę się zaproponować stałą tablicę statyczną, zainicjowaną > w pliku cpp. > > Jeśli kilka różnych stałych tablic, to może kilka różnych klas? Ale najlepiej chciałbym użyć stałej inicjowanej w kodzie w miejscu wywołania, tak jak inicjuje się stałe tekstowe. A może constexpr? To temat na osobny wątek, czy Visual Studio obsługuje tę wersję C++? Jak działa? Stałe constexpr tworzone są podczas kompilacji?
Re: Inicjowanie konstruktora stałą tablicą
Author: M.M.
Date: Sat, 08 Oct 2016 01:34
Date: Sat, 08 Oct 2016 01:34
15 lines
1969 bytes
1969 bytes
On Friday, October 7, 2016 at 10:30:13 PM UTC+2, Borneq wrote: > W dniu 07.10.2016 o 21:06, M.M. pisze: > > odważę się zaproponować stałą tablicę statyczną, zainicjowaną > > w pliku cpp. > > > > Jeśli kilka różnych stałych tablic, to może kilka różnych klas? > > Ale najlepiej chciałbym użyć stałej inicjowanej w kodzie w miejscu > wywołania, tak jak inicjuje się stałe tekstowe. > A może constexpr? To temat na osobny wątek, czy Visual Studio obsługuje > tę wersję C++? Jak działa? Stałe constexpr tworzone są podczas kompilacji? Użyłem constexpr może raz w życiu. To do tablic też się nadawało? Pozdrawiam
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads