abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 00:11 | Nová verze

    Byla vydána verze 1.70.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Jako reakce na rostoucí obavy z vlivu korporací na vývoj Rustu a předložený návrh restriktivních zásad používání ochranných známek Rustu, byl nedávno představen komunitní fork Rustu se 100 % méně byrokracie: Crab (CrabLang).

    Ladislav Hagara | Komentářů: 1
    včera 21:55 | Zajímavý článek

    Oliver Smith z Canonicalu shrnuje základní vlastnosti „neměnné“ distribuce Ubuntu Core také ve srovnání s protějšky Chrome OS, Fedora Silverblue a MicroOS. Canonical připravuje desktopovou variantu Ubuntu Core vedle dosavadní serverové/embedded.

    Fluttershy, yay! | Komentářů: 0
    včera 13:33 | Upozornění

    Z aktualizovaného seznamu chyb (pdf) procesoru AMD EPYC 7002: #1474 - procesor se po 1044 dnech od posledního resetu zasekne [reddit].

    Ladislav Hagara | Komentářů: 7
    včera 13:00 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.22. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Zajímavý článek

    David Malcolm se ve svém příspěvku na blogu vývojářů Red Hatu rozepsal o vylepšeních statické analýzy (volba -fanalyzer) v GCC 13.

    Ladislav Hagara | Komentářů: 1
    včera 12:00 | Nová verze

    Byla vydána nová stabilní verze 23.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Stoat. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Bezpečnostní upozornění

    Příspěvek na blogu CZ.NIC upozorňuje na nový útok na weby v Česku. Na honeypotech na Turrisech byla zaznamenána nová aktivita útočníků - probíhající útok na FTP servery, které se vyskytují na stejné IP adrese, jako aktivní WEB server.

    Ladislav Hagara | Komentářů: 0
    31.5. 23:44 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi 2023.05. Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 0
    31.5. 20:22 | IT novinky

    Linux Foundation Europe představila projekt RISE (RISC-V Software Ecosystem), jehož cílem je urychlit vývoj open source softwaru pro architekturu RISC-V.

    Ladislav Hagara | Komentářů: 0
    31.5. 14:55 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu pro jednodeskové počítače na platformě ARM, byl vydán ve verzi 23.05. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    Twitter (nejen pro příležitostné čtení)
     (71%)
     (14%)
     (14%)
    Celkem 14 hlasů
     Komentářů: 0
    Rozcestník

    Dotaz: pretaženie operatora s konštantou naľavo

    Xgamer avatar 20.4.2011 19:04 Xgamer | skóre: 4
    pretaženie operatora s konštantou naľavo
    Přečteno: 133×
    Zdravím, mam za úlohu nakodiť "knihovnu" na základne operácie s komplexnými číslami. Samozrejme relatívne jednoduchá úloha, ktorá sa dá vyriešiť pomocou preťažovanie operátorov. Avšak v tom je aj ten problém :). Neviem totiž ako spraviť aby mi fungovalo napríklad niečo takéto c1 = 2 * c1 Opačne čiže c1*2 funguje bezproblémovo, ale neviem ako spraviť aby to fungovalo aj naopak, neviem ako to zapísať. Ďakujem za pomoc

    Odpovědi

    20.4.2011 19:29 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo

    Je potřeba, aby vaše třída měla konstruktor, který půjde volat s jedním reálným parametrem, tj. např.

    class Cplx {
    protected:
      double x;
      double y;
    public:
      Cplx(double xx=0.0, double yy=0.0) : x(xx), y(yy) {}
    };
    
    20.4.2011 19:35 Sten
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    Jednoduše udělejte operátor mimo třídu a se dvěma parametry:
    Complex operator *(const double &left, const Complex &right);
    Xgamer avatar 21.4.2011 20:11 Xgamer | skóre: 4
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    Ano tak by to šlo ale gcc mi stále hlasi že už mam viacnasobnu definiciu operatora. Ide o to že ja potrebujem spraviť:
    Complex operator *(Complex &c1, Complex &c2)
    Complex operator *(const double &num, Complex &c)
    Complex operator *(Complex &c, const double &num)
    Som z toho trošku jeleň, na googli nemožem nič rozumne k tomu najsť niečo čo by riešilo všetky pripady ako potrebujem ja... Ako som pochopil tak to nemožem všetko nadefinovať ako metody, resp. v tele triedy ale ako friend funkcie no ani tak mi to nefunguje.

    Časť triedy:
    class Complex
    {
        public:
            Complex(){};
            Complex(double re, double im);
            friend Complex operator * (Complex &c1,const double &num) ;
            friend Complex operator * (const double &num, Complex &c1) ;
            friend Complex operator * (Complex &c1, Complex &c2);
            void Display();
        private:
            double re;
            double im ;
    };
    Ďakujem za pomoc :)
    21.4.2011 20:33 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    A zkoušel jste to, co jsem vám poradil v první odpovědi?
    Xgamer avatar 21.4.2011 21:54 Xgamer | skóre: 4
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    Skúšal som to, stale mi to hlási viacnásobná definicia...
    21.4.2011 22:18 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo

    V tom případě ukažte, co přesně jste zkoušel, protože to funguje:

    #include <iostream>
    
    class C {
    public:
      double x;
      double y;
      C(double xx=0.0, double yy=0.0) : x(xx), y(yy) {}
    };
    
    inline const C operator * (const C& a, const C& b)
    {
      return C(a.x*b.x-a.y*b.y, a.x*b.y+a.y*b.x);
    }
    
    int main()
    {
      C a(3,5);
      C b;
    
      b = 2 * a;
    
      std::cout << b.x << " + " << b.y << "i\n";
    
      return 0;
    }
    
    21.4.2011 20:43 __dark__
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    A nemělo by to být spíš takto?
    Complex operator *(const Complex &c1, const Complex &c2)
    Complex operator *(const double &num, const Complex &c)
    Complex operator *(const Complex &c, const double &num)
    
    A napiš to mimo tělo té třídy, jak radil Sten.
    21.4.2011 21:06 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    Není u double ta konstantní reference trochu overkill?
    Xgamer avatar 21.4.2011 21:58 Xgamer | skóre: 4
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    Neviem, tak sa v tom nevyznam :)vždy to bude len konštatne čislo tak neviem. Každá nová vedomosť je dobrá :)
    21.4.2011 22:21 Sten
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    No jak na které architektuře, jsem holt zvyklej na ty starý (16-bit, 32-bit), kde bylo lepší všechno, co je větší než registr a není konstanta, předávat referencí, ale na 64-bitovém počítači už se double vejde do registru, tak tam je to zbytečný.
    21.4.2011 23:28 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    Nejenom zbytečné. Pokud to totiž budete opravdu předávat přes pointer (který je mimochodem stejně velký jako double), znamená to zdržení na jeho dereferencování. V praxi je ale samozřejmě otázka, co z toho v konkrétním případě udělá kompilátor.
    Xgamer avatar 21.4.2011 21:56 Xgamer | skóre: 4
    Rozbalit Rozbalit vše Re: pretaženie operatora s konštantou naľavo
    No vyzerá to že si prehádzal len poradie? No nenapadlo ma že by to s tým niečo mohlo mať, ale skusil som to a stale to iste:( ono pokial nemam zadefinovaný operator pre riešenie ked je na lavej strane tá konštanta tak to ide...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.