Pocz
Zgadzam się, ma rację jeżeli chodzi o C++, ale trochę "nieładnie" się wypowiada, co na doświadczonego użytkownika nie przystaje według mnie.
Nie chodzi mi o to, że poprawia kod - bardzo dobrze, że poprawia, ale np: "gównianymi poradami... " - no przepraszam, to jest forum, każdy pomaga na ile umie. A jak kolega zobaczył błąd gdzieś, to można przecież grzecznie zwrócić uwagę
Pozdrawiam.
Nie chodzi mi o to, że poprawia kod - bardzo dobrze, że poprawia, ale np: "gównianymi poradami... " - no przepraszam, to jest forum, każdy pomaga na ile umie. A jak kolega zobaczył błąd gdzieś, to można przecież grzecznie zwrócić uwagę
Pozdrawiam.
Niekoniecznie. Skoro jest możliwość zastosowania tego i ISO tego nie zabrania to czemu to jest błąd. M. in. w "Thinking in C++" jest to używane. Poza tym, gdyby to było błędem to nie było by takiej możliwości. Po coś to zostało zrobione, więc moim zdaniem można z tego korzystać. Oczywiście wszystko zależy od tego co kto preferuje i co używa.legion pisze:to jest błąd... nigdy nie robi się using namespace std, jak już to specyfikuje się używane elementy
C++ jest następcą C, wywodzi się z niego, więc wiele poleceń jest "rodem z" C. Debian użył przecież rzutowania, które jest dozwolone, ale nie zalecane. Poza tym Debian napisał:legion pisze:to są konstrukcje rodem z jakiegoś bejzika na komodorkę albo kulawego C.
więc zaznaczył, że rozwiązanie jest pisane na szybko i może nie być eleganckie.Debian pisze:na kolanie pisane rozwiazanie, moze malo eleganckie ale na szybkiego dziala
Nie atakuję ludzi tylko 'programistów' którym się wydaje że potrafią. Wiem że to jest forum dlatego denerwują mnie posty ludzi którzy potrafią niewiele więcej (często mniej) od pytającego wprowadzające go w złudny stan naprowadzenia na dobrą drogę.Kaka' pisze:legion, co Ty tak ludzi atakujesz? mlyczek już zwracał Ci uwagę, ja teraz także zwracam. To jest forum, nie burdel. Co z tego, że inni podali zły kod, etc.? Ok, popraw ich, ale szacunku mój drogi, szacunku. Jeszcze jeden post i ostrzeżenie!
Kącik 'programowanie' ma być o programowaniu a nie o poprawianiu kodu początkujących przez jeszcze bardziej początkujących - ci pierwsi na tym tracą, ci drudzy zwiększają poziom swojego ego.
Kaka - zastanów się kogo straszysz. Nie rozpoczynam pustych pyskówek, wszystkie moje posty są poparte merytoryką. Rzeczonej merytoryki nie widzę w postach poprzednich stąd moja frustracja.
[ Dodano: 2007-06-16, 00:19 ]
Przeczytaj mi to jeszcze raz... ISO nie definiuje standardów kodowania (sic!) tylko syntaktykę/semantykę języka. Jest to używane często dla wygody, jednak nie należy do dobrych praktyk.mlyczek pisze:Niekoniecznie. Skoro jest możliwość zastosowania tego i ISO tego nie zabrania to czemu to jest błąd. M. in. w "Thinking in C++" jest to używane. Poza tym, gdyby to było błędem to nie było by takiej możliwości. Po coś to zostało zrobione, więc moim zdaniem można z tego korzystać. Oczywiście wszystko zależy od tego co kto preferuje i co używa.legion pisze:to jest błąd... nigdy nie robi się using namespace std, jak już to specyfikuje się używane elementy
Argument że 'po coś to jest' pominę milczeniem dla Twojego dobra...
Raz kolejny powtarzam że właśnie dlatego się zdenerwowałem - tutaj piszą ludzie którzy nie mają pojęcia o C++. Nie chodzi o rzutowanie (?) - nie wiem dlaczego miałoby być zalecane lub nie, w każdym razie jest poprawne. chodziło o niezastosowanie std::string. Po tym małym szczególe można poznać kto zna się na C++ a kto na C z klasami. Tym drugim serdecznie dziękujemy.mlyczek pisze:C++ jest następcą C, wywodzi się z niego, więc wiele poleceń jest "rodem z" C. Debian użył przecież rzutowania, które jest dozwolone, ale nie zalecane.legion pisze:to są konstrukcje rodem z jakiegoś bejzika na komodorkę albo kulawego C.
Właśnie. Napisał że się uczy (oczekuje kodu dobrego, edukacyjnego a nie syfu zrobionego na kolanie bo 'za 2h zaliczenie'). Bo cała ta śmieszna wojna jest właśnie dla dobra tych którzy chcą się nauczyć a nie dlatego że mam za dużo wolnego czasu.mlyczek pisze:Poza tym Debian napisał:więc zaznaczył, że rozwiązanie jest pisane na szybko i może nie być eleganckie.Debian pisze:na kolanie pisane rozwiazanie, moze malo eleganckie ale na szybkiego dziala
[ Dodano: 2007-06-16, 00:20 ]
Eh coś mi się dziwnie napisało.
Chciałabym usłyszeć argument za tym, dlaczego deklarowanie każdej funkcji z osobna w danej przestrzeni nazw jet rzekomo tak bardzo profesjonalne. Osobiście: nie wiem. Jest wiele funkcji, które posiadają skomplikowane i niewygodne w użyciu nazwy - w szczególności, kiedy są częścią bibliotek zaimportowanych "skąśtam", w tym wypadku deklarowanie dla nich przestrzeni nazw jest jak najbardziej słuszne. Jak dla mnie używanie operatorów zasięgu jest kiepskim rozwiązaniem - imho program staje sie po prostu zapaćkany... w szczególności kiedy ma 1000 linijek i dla mnie przestaje być po prostu przejrzysty. Jak programujemy? ¯eby było nam wygodnie i oczywiście zgodnie z poprawnością składniową i merytoryczną używanego języka. Standardy - nie zawsze pomagają. Myślę, że wykorzystywanie dyrektywy using i importowanie przestrzeni nazw do najbliższego zasięgu jest jak najbardziej w porządku i zgodne ze składnią.legion pisze: [ Dodano: 2007-06-16, 00:19 ]mlyczek pisze:Niekoniecznie. Skoro jest możliwość zastosowania tego i ISO tego nie zabrania to czemu to jest błąd. M. in. w "Thinking in C++" jest to używane. Poza tym, gdyby to było błędem to nie było by takiej możliwości. Po coś to zostało zrobione, więc moim zdaniem można z tego korzystać. Oczywiście wszystko zależy od tego co kto preferuje i co używa.legion pisze:to jest błąd... nigdy nie robi się using namespace std, jak już to specyfikuje się używane elementy
Wypas. 1k linijek... 1k linii to chyba jakiś program na zaliczenie albo na maturę z informatyki.heireann pisze:Chciałabym usłyszeć argument za tym, dlaczego deklarowanie każdej funkcji z osobna w danej przestrzeni nazw jet rzekomo tak bardzo profesjonalne. Osobiście: nie wiem. Jest wiele funkcji, które posiadają skomplikowane i niewygodne w użyciu nazwy - w szczególności, kiedy są częścią bibliotek zaimportowanych "skąśtam", w tym wypadku deklarowanie dla nich przestrzeni nazw jest jak najbardziej słuszne. Jak dla mnie używanie operatorów zasięgu jest kiepskim rozwiązaniem - imho program staje sie po prostu zapaćkany... w szczególności kiedy ma 1000 linijek i dla mnie przestaje być po prostu przejrzysty.legion pisze: [ Dodano: 2007-06-16, 00:19 ]mlyczek pisze: Niekoniecznie. Skoro jest możliwość zastosowania tego i ISO tego nie zabrania to czemu to jest błąd. M. in. w "Thinking in C++" jest to używane. Poza tym, gdyby to było błędem to nie było by takiej możliwości. Po coś to zostało zrobione, więc moim zdaniem można z tego korzystać. Oczywiście wszystko zależy od tego co kto preferuje i co używa.
1. Nic nie pisałem o deklarowaniu (?) funkcji z osobna. BTW. nie wiem jak można deklarować funkcje razem...
2. Funkcje które mają skomplikowane nazwy (?) zostały napisane przez ludzi którzy programować nie potrafią i tyle.
3. By program nie był zapaćkany włacza się używane elementy (using...)
Na poziomie programowania 4fun albo na maturę z informatyki powyższy tekst jest prawdą, w przeciwnym razie to bzdura.heireann pisze:Jak programujemy? ¯eby było nam wygodnie i oczywiście zgodnie z poprawnością składniową i merytoryczną używanego języka. Standardy - nie zawsze pomagają. Myślę, że wykorzystywanie dyrektywy using i importowanie przestrzeni nazw do najbliższego zasięgu jest jak najbardziej w porządku i zgodne ze składnią.
Uważaj na język!legion pisze:Przestańcie mnie rozśmieszać i mieszać w głowie poczatkującemu gównianymi poradami...
Jeśli tak uważasz to powiedz dlaczego nie używać dyrektywy using namespace? Jeśli używasz tej przestrzeni w całej jednostce to przecież to ułatwia życie i nie jest błędem, do tego nigdy nie spotkałem się z opinią że to jest błąd, a jak masz taką informację popartą wiarygodnym źródłem to podaj to źródło, bo wykrzykiwanie i pyskowanie nie przemawia do mnie i myślę, że do reszty także nie przemówi.ponton - to jest błąd... nigdy nie robi się using namespace std, jak już to specyfikuje się używane elementy:
Kod: Zaznacz cały
using std::string using std::map ...
Debian - twojego kodu nawet nie komentuję, weź go lepiej usuń. widać że C++ nie znasz i nigdy nie znałeś:Kod: Zaznacz cały
char* imie = new char[100]] to są konstrukcje rodem z jakiegoś bejzika na komodorkę albo kulawego C.[/quote] Ja nie mówię, że znam nie mówię także że nie znam, ale powinieneś uważać na słowa. Bardzo dobrym zwyczajem i poprawnie jest wykonywać rzutowanie jawne określone przez standardy C++, w tym przypadku zostało tak wykonane, w jezyku C dla Twojej wiadomości nie ma czegoś takiego więc Twój argument jest bzdurny.
Bo usuniesz mojego posta bez żadnego wytłumaczenia ani nawet przedstawienia się? Takie faszystowskie metody już któryś z was stosował niedawno...Debian pisze:Uważaj na język!legion pisze:Przestańcie mnie rozśmieszać i mieszać w głowie początkującemu gównianymi poradami...
using namespace ... włącza całą przestrzeń. o ile używasz większości klas/funkcji z danej przestrzeni jest OK. jednak wiem że nie używasz nawet 5% a o kolizje łatwo...Debian pisze:Jeśli tak uważasz to powiedz dlaczego nie używać dyrektywy using namespace? Jeśli używasz tej przestrzeni w całej jednostce to przecież to ułatwia życie i nie jest błędem, do tego nigdy nie spotkałem się z opinią że to jest błąd, a jak masz taką informację popartą wiarygodnym źródłem to podaj to źródło, bo wykrzykiwanie i pyskowanie nie przemawia do mnie i myślę, że do reszty także nie przemówi.ponton - to jest błąd... nigdy nie robi się using namespace std, jak już to specyfikuje się używane elementy:
Kod: Zaznacz cały
using std::string using std::map ...
to czy jest to błąd zależy od sytuacji. nowicjusze na pewno powinni unikać szafowania 'using namespace'. zresztą to samo tyczy się 'import' w javie...
Debian pisze:Debian - twojego kodu nawet nie komentuję, weź go lepiej usuń. widać że C++ nie znasz i nigdy nie znałeś:Kod: Zaznacz cały
char* imie = new char[100]] to są konstrukcje rodem z jakiegoś bejzika na komodorkę albo kulawego C.[/quote] Ja nie mówię, że znam nie mówię także że nie znam, ale powinieneś uważać na słowa. Bardzo dobrym zwyczajem i poprawnie jest wykonywać rzutowanie jawne określone przez standardy C++, w tym przypadku zostało tak wykonane, w jezyku C dla Twojej wiadomości nie ma czegoś takiego więc Twój argument jest bzdurny.[/quote] 1. rzutowanie technicznie jest ładne, ale zabawa z tablicą char i późniejsze konwertowanie jej na std::string już nie. 2. nie ucz ojca dzieci robić... dla Twojej wiadomości - cały C był słabo typowany i zabawa z rzutowaniami była podstawą programowania w tym języku. C++ w przeciwieństwie do poprzednika jest silnie typowany (co pozwala wykryć błędy już na etapie kompilacji a nie w runtim) a każde rzutowanie typizację tę niszczy. chyba że generalizujemy coś poprzez (void *) ale to już inna bajka.
legion pisze:Bo usuniesz mojego posta bez żadnego wytłumaczenia ani nawet przedstawienia się? Takie faszystowskie metody już któryś z was stosował niedawno...
a co do reszty Twojego postu, to nie można było tak od razu? dzięki temu nie było by tej głupiej kłótni bo Twoje uwagi były by od razu poparte argumentami.Rad pisze:Hej chłopaki, ja wam powiem jedno - chill out . Odnośmy się do siebie z kulturą i szacunkiem, to stanowi siłę tego forum i wyróżnia je spośród innych. Jeżeli ktoś pisze źle - normalnie zwróćmy mu uwagę i pokażmy błąd - dzięki temu i pytający, i odpowiadający się czegoś nauczą. Bo nie sądzę, żeby odpowiedź napisana w "ostrym" tonie cokolwiek zdziałała.
a co do tej kłótni, to jeśli chcecie ją kontynuować, to nie na forum, macie do tego inne formy komunikacji (PW, e-mail, gg, jabber, ...)
od tej pory wszystko co będzie związana z tą kłótnią, będzie momentalne usuwane, żeby nie rozwalać forum (to nie będzie cenzura - bo nią się brzydzę).