Wpis z mikrobloga

#cpp #programowanie a bardziej #naukaprogramowania

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 tablicy
I 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
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lionbest: panie kolego, nie przeszedłbyś code review u mnie ( ͡° ͜ʖ ͡°) mały hint na przyszłość:
http://melpon.org/wandbox/permlink/9h8EGbNSiuzzeKiL <- warning
http://melpon.org/wandbox/permlink/rJ07WfY3YaR1wfsd <- i już nie ma. castowanie na void to jakieś WTF
nie wiem dlaczego Twój konstruktor może przyjąć dowolną ilość argumentów dowolnego typu, to też jakieś WTF, bo jeśli mówimy o maksymalnie czterech doublach, to

foo::foo(double arg1 = 0, double arg2 = 0, double arg3
  • Odpowiedz