Aktywne Wpisy

DailyMail.com uzyskał fragmenty wspólnego raportu US Air Force, NASA i FBI na temat poprzednich wtargnięć na bazy wojskowe oraz relację oficera. Wygląda to bardzo źle. Wiedzą o tym od co najmniej roku i nie potrafią tego złapać. Spotykają się z technologią dotąd niespotykaną. Próbowano użyć sprzętu Sił Specjalnych i żadnych efektów. Wszystko co władza oficjalnie podaje to kłamstwa, sytuacja jest ekstremalnie zła. Jednocześnie władze USA już wcześniej wykluczyły udział obcych państw.
Cały
Cały
aa-alkus-80 +16
#alkoholizm
No to o mnie: 44 lat skończone, kawaler, który nigdy nie myślał o zakładaniu rodziny, bo to odpowiedzialność i nerwy. Przez to brak dzieci. Z rodziny tylko siostra, rodzice poumierali. Brak znajomych, kolegów, bo charakter nieufności no i w moim wieku już mają rodziny. Żadnych sportów zespołowych.
Zawsze lekka praca biurowa (porzucona przez niechęć do obrabiajacych d--y, że ktoś żyje inaczej. Własny duży kwadrat i oszczędności. Kilka lat #neet
No to o mnie: 44 lat skończone, kawaler, który nigdy nie myślał o zakładaniu rodziny, bo to odpowiedzialność i nerwy. Przez to brak dzieci. Z rodziny tylko siostra, rodzice poumierali. Brak znajomych, kolegów, bo charakter nieufności no i w moim wieku już mają rodziny. Żadnych sportów zespołowych.
Zawsze lekka praca biurowa (porzucona przez niechęć do obrabiajacych d--y, że ktoś żyje inaczej. Własny duży kwadrat i oszczędności. Kilka lat #neet
źródło: temp_file7912151192958540183
Pobierz




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