Aktywne Wpisy

drakonia +344
Mirasy, wracam do Was z trzecią częścią sagi o oszustwie na OLX w sprawie odkurzacza. W razie potrzeby: link do pierwszej i link do drugiej części
O pomoc w unboxingu poprosiłam jeszcze jedną osobę. Odpaliłam też dwie kamerki – jedną w telefonie, "mobilną", zaś druga stała na statywie i była cały czas skierowana na stół, gdzie odpakowywałam przesyłkę. W międzyczasie robiłam też fotki. Cały proces mam więc idealnie zapisany.
Sam sposób zapakowania był tragiczny,
O pomoc w unboxingu poprosiłam jeszcze jedną osobę. Odpaliłam też dwie kamerki – jedną w telefonie, "mobilną", zaś druga stała na statywie i była cały czas skierowana na stół, gdzie odpakowywałam przesyłkę. W międzyczasie robiłam też fotki. Cały proces mam więc idealnie zapisany.
Sam sposób zapakowania był tragiczny,

SirPoopyTail +257
Cześć, potrzebuję ekspresowo zebrać odpowiedzi do mojej ankiety do pracy magisterskiej. Z tej okazji robię #rozdajo
Losowanie odbędzie się przez stronę mirko.pro, a wybrana zostanie jedna z osób plusujących ten post.
Wybrana osoba wygrywa blik 150 zł.
Losowanie odbędzie się 14.01.2025 o godzinie 16:00.
Losowanie odbędzie się przez stronę mirko.pro, a wybrana zostanie jedna z osób plusujących ten post.
Wybrana osoba wygrywa blik 150 zł.
Losowanie odbędzie się 14.01.2025 o godzinie 16:00.





C++. Mam klasę, w której jednym z elementów oraz jednym z parametrów konstruktora jest tablica, dajmy na to:
class Foo { public: double m_array [4] (...) };Foo::Foo (int spam, double bar [], int n=4) { ... }//n to rozmiar tablicyI teraz pytanie czy jest taka możliwość, żeby podczas tworzenia obiektu tej klasy zainicjalizować tą tablicę (bar, której wartości chcę potem przypisać do marray) konkretnymi wartościami bez tworzenia przed tym wywołaniem innej tablicy elementów double? Prawdopodobnie odpowiedź jest banalnie prosta, ale tworząc obiekt choćby w ten sposób
Foo bar = Foo(12, {1,2,3,4})kompilator nie chce mi tego przetrawić (jedynie tak jak pisałem wyżej, tworząc wcześniej tablicę 4-el double i przekazując jej adres w miejscu
{1,2,3,4}więc gdzieś musi być błąd@Calvert: Użyj
std::array, będziesz mógł zainicjalizować przez {} w parmetrzeDla uzupełnienia można dodać, że działa to także na tablicach typu
std::vector, tyle że tam chyba wymagane jest, aby użytkownik przy inicjalizacji podał wszystkie wartości, które od niego wymagamy (tj. nie może podać 2 jeśli potrzebujemy 4, bo utworzy nam się tablica 2-elementowa zamiast tak jak w przypadku użyciaarray4-elementowa, gdzie 2 będą miały wartości,initializer_list, ale coś kombinuję. Próbuję skorzystać zinitializer_listw przypadku gdy mam tablicęvectorjako składową klasy i listęinitializer_listdaję jako parametr konstruktora (wraz z domyślnymi wartościami), ale wychodzi na to samo co gdyby parametrem konstruktora była tablicavector, bo gdy inicjalizuję obiekt liczbą argumentów mniejszą niż domyślna to lista, nie pozostawia mi tych pozostałych domyślnych wartości, a uwzględnia jedynie te,Dzięki!
@Calvert: Standardowe tablice to właśnie
std::array, a tamte to jakiś anarchronizm ( ͡° ͜ʖ ͡°)Nie no zbijam się, ale w sumie to da się poprzez zmienna liczbę parametrów, dokładnie tak jak chcesz:
http://melpon.org/wandbox/permlink/E7mmuQhsCProMkKr
(void)spam;- normalnie do tej pory spotkałem się z takim zastosowaniem nawiasów ( np.(int)) przy rzutowaniu na jakiś typ - rzutowanie na void yyy bezsens (który działa! :D)?. (chyba, że ma to jedynie pokazać, że da się stosować w konstruktorze więcej niż jeden paramet przy inicjalizacji i nic więcej?).I druga rzecz,
Co do tej defaultowej wartości to o ile w konstruktorze z initializer_list będzie działać o tyle w tym pierwszym już nie bo ilość musi się zgadzać dokładnie, niby dało by się coś tam wymyślić na to ale nie będzie proste.
Ale jeżeli w domyślnym, pierwszym konstruktorze
foo (int spam, T... values) : mArray{values...}w miejscevalues...wstawię te same domyślne wartości tj.foo (int spam, T... values) : mArray{6,6,6,6}to wtedy wszystko śmiga tak jak powinno, więc chyba jest okej ( http://melpon.org/wandbox/permlink/oDwMCprZS1ADCC8i )e:
Na marginesie przyznam jeszcze, że nie do końca rozumiem po co zastosowałeś tam w tym pierwszym konstruktorze
: m_ArrayDlaczego to jest ważne? Bo nie da się inaczej znacjonalizować obiektu const foo, co jest w sumie ważną sprawą.
Przy czterech elementach nie ma to sensu, łatwiej jest napisać 4 osobne konstruktory, ale przy N wartościach to już będzie kłopotliwe.
w takiej sytuacji template można wywalić wraz z values i wyniki są takie jakich oczekuję, więc co jest nie tak? ;D
http://melpon.org/wandbox/permlink/pFi687YGTcyMreGV