Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Programy do ćwiczeń

Ostatnio zmodyfikowano 2017-01-04 18:27
Autor Wiadomość
latajacaryba
Temat założony przez niniejszego użytkownika
Programy do ćwiczeń
» 2017-01-04 12:21:33
Witam. Mam zamiar napisać krótki program w którym utrwalę wiedzę o przeładowaniu operatorów.
Kiedyś czytałem (nie pamiętam gdzie), że najlepiej jest pisać programy mające odzwierciedlenie w rzeczywistości, czyli np:
C/C++
#include <iostream>
#include <string>
using namespace std;
class sklep
{
    int l_produktow;
    string nazwa_sklepu;
public:
    sklep( int produktow, string nazwa )
        : l_produktow( produktow )
         , nazwa_sklepu( nazwa )
    { }
   
    sklep & operator +=( sklep arg )
    {
        l_produktow += arg.l_produktow;
        return * this;
    }
    int info()
    {
        return l_produktow;
    }
   
};
int main()
{
    sklep a( 200, "abc" );
    sklep b( 500, "def" );
    int w =( a += b ).info(); // zwraca referencje do obiektu a i wywoluje info()
    cout << "produktow w obu sklepach: " << w;
}
Czy (nie ukrywam, prostsze w wymyślaniu)
C/C++
class X
{
    int a;
    //operator, konstruktor, konstruktor konwertujacy na typ int...
};
int main()
X a( 2 ), b( 3 ), c( 4 );
int w = a + b + c;
cout << w;

Tak więc co lepsze? Wiem, że to pytanie może brzmieć głupio, bo jak wszyscy wiemy internet to niepodważalne źródło wiedzy więc skoro ktoś kiedyś tak napisał to to musi być prawda, to ja wole się dopytać. Przekłady realistyczne czy abstrakcyjne?
P-155942
michal11
» 2017-01-04 13:56:35
Najlepsze ćwiczenie do nauki operatorów to pewnie napisanie swojej klasy liczb zespolonych albo macierzy albo wektorów 3D albo innych matematycznych tworów.
P-155947
mokrowski
» 2017-01-04 14:29:09
IMHO realistyczne przykłady lepsze. Choćby dlatego że jak będziesz coś robił czy zawodowo czy hobbystycznie to będzie to w ~80% albo "przewalanie danych z bazy do bazy" (Customer, Street, Name, Born, .... Product, Price... ) albo będziesz dłubał jakąś grę.
Możesz skrobnąć jakiś twór matematyczny (jak pisał @michal11) ale odradzam X, Y, Foo, Bar.. Wrócisz po 1msc. do kodu i będziesz sam siebie pytał o co/po co. :-)
P-155951
latajacaryba
Temat założony przez niniejszego użytkownika
» 2017-01-04 14:47:24
@mokrowski
Hehehe tego co Michał proponował na pewno póki co nie zrobię, bo jeszcze się o tym nie uczyłem :p
Żeby przeczytać rozdział o konwertowaniu w Symfonii musiałem się dowiadywać co to liczby zespolone, także ewentualnie z tym mogę podziałać.
Dzięki za odpowiedzi.

Ps. z ciekawości zapytam; w ostatnim założonym przeze mnie temacie pisałeś, że coś jest nie tak z [.cpp] [./cpp]. Co Ci się nie podoba?
P-155952
mokrowski
» 2017-01-04 14:59:36
@latajacaryba, zawsze wychodzę z założenia że jak jestem sobie w stanie poradzić sam (umieszczając w log) przy _wystarczającej_ jakości, to wolę to zrobić. Nie chcę tracić czasu na uwagi z których nic nie wyniknie.
P-155954
latajacaryba
Temat założony przez niniejszego użytkownika
» 2017-01-04 15:45:54
Ok, w każdym razie dzięki za odpowiedzi :)
Temat zamykam
P-155960
Monika90
» 2017-01-04 15:50:08
Co ma wspólnego z rzeczywistością arytmetyka sklepów?
P-155961
pekfos
» 2017-01-04 16:28:37
zawsze wychodzę z założenia że jak jestem sobie w stanie poradzić sam (umieszczając w log) przy _wystarczającej_ jakości, to wolę to zrobić.
No to przyjmij do wiadomości, że rezygnowanie z automatycznego kolorowania kodu, bo 'jesteś sobie w stanie poradzić sam z [log] (????)', to nie jest _wystarczająca_ jakość. Kod ma być czytelny i są od tego mechanizmy na forum. Ostatnio napisałeś 'może pora się ruszyć i poprawić formatter' i teraz się tylko z tego wycofujesz. Sprawiasz problemy bez wyraźnego powodu.
P-155963
« 1 » 2
  Strona 1 z 2 Następna strona