@maisterwihaister: kurła w c++ to wszystko było prostsze. this-> było w zasadzie opcjonalne, i w sumie w praktyce tego prawie nie używałem. Tutaj bez "self" nawet funkcji nie zadeklarujesz, ani do żadnej zmiennej sie nie odwołasz, a idź Pan w ciul
@RedveKoronny: no i teraz, styl obiektowy w C, polega na tym, że funkcje w pierwszym argumencie przyjmują strukturę, którą można nazwać "this".
Ostatecznie zawsze masz adresowalne dane/informacje-obiekty i dane/informacje-wykonywalne, a jeżyk programowania ma za zadanie to jakoś spójnie i przyjaźnie złączyć, aby to współgrało ze sobą :P
Wszystkie funkcje w tym pliku przyjmują strukturę tego samego typu przez wskaźnik jako pierwszy argument funkcji.
W C++ zamiast tej struktury i kilku funkcji, to byś to naklepał jako klasa lub struktura z metodami, a this po prostu jest cukrem składniowym na takie podejście z pierwszym
@patrolez: w tym pliku nie ma słowa "this" widzę tylko keyword "struct" w momencie deklarowania użycia struktury (w sensie tworzenie zmiennej, albo przekazywanie struktury do funkcji). Dalej wydaje mi się to mniejszy masochizm, biorąc pod uwagę że nie dopisuję "struct" przed każdą zmienną w samym structcie :V
@RedveKoronny: chodzi mi o nazwę i położenie pierwszego argumentu/zmiennej, a nie o sygnaturę. Zmienisz na "this", to będziesz mieć this - w każdym razie obiektowe "C", to jest właśnie napierdzielanie "self" jako pierwszy argument, lub jako C plus plusowe implicit this.
@RedveKoronny: użytkownikowi @patrolez chodzi o to że w obiektowych językach metody w danej klasie to tak naprawdę funkcje których pierwszym argumentem jest instancja klasy na której są wołane. Czasami to jest równoznaczne i wspierane przez język, np. przez uniform function call syntax, extension methods to podobny temat. Generalnie warto by było przy tej okazji poruszyć temat single dispatch i multiple dispatch ale nie chce mi się xD
@RedveKoronny: btw może dobrym pomysłem byłoby użycie modułu abc zamiast dziedziczenia po Shape skoro definiujesz tylko interfejs? I dataclass żeby nie musieć bawić się w pisanie konstruktorów ;) Widzę też że używasz adnotacji typów ale tylko w jednym miejscu.
self.od
self.wpisywania
self.wszędzie
self.self.
self.dostanę
self.self-ataku
czy wy zawsze myślicie tylko o sobie? ヽ( ͠°෴ °)ノ
źródło: comment_16610394440klLTxNZVCopJKa8nwDDHm.jpg
Pobierzthis-> było w zasadzie opcjonalne, i w sumie w praktyce tego prawie nie używałem.
Tutaj bez "self" nawet funkcji nie zadeklarujesz, ani do żadnej zmiennej sie nie odwołasz, a idź Pan w ciul
Albo np. nie widziałeś obiektowego stylu pisania w natywnym C (czyli nie w C++).
void Foo(struct MyStruct k){
printf("%d\t%d\n", k.a, k.b);
}
Ostatecznie zawsze masz adresowalne dane/informacje-obiekty i dane/informacje-wykonywalne, a jeżyk programowania ma za zadanie to jakoś spójnie i przyjaźnie złączyć, aby to współgrało ze sobą :P
Wszystkie funkcje w tym pliku przyjmują strukturę tego samego typu przez wskaźnik jako pierwszy argument funkcji.
W C++ zamiast tej struktury i kilku funkcji, to byś to naklepał jako klasa lub struktura z metodami, a this po prostu jest cukrem składniowym na takie podejście z pierwszym
widzę tylko keyword "struct" w momencie deklarowania użycia struktury (w sensie tworzenie zmiennej, albo przekazywanie struktury do funkcji).
Dalej wydaje mi się to mniejszy masochizm, biorąc pod uwagę że nie dopisuję "struct" przed każdą zmienną w samym structcie :V
W c++ można napisać
1'000'000 żeby było czytelniejsze. Da sie tak w pythonie?
Czasami to jest równoznaczne i wspierane przez język, np. przez uniform function call syntax, extension methods to podobny temat.
Generalnie warto by było przy tej okazji poruszyć temat single dispatch i multiple dispatch ale nie chce mi się xD