Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

TeLord

od czego zacząć?

Polecane posty

Z jezyka obiektowego przechodzic na strukturalny ? nonsens.

C++ nie jest językiem obiektowym... C++ jest językiem ogólnego przeznaczenia, wieloparadygmatowym. Nie wiesz o tym...?

Nie ma znaczenia od czego zacznie, ważne żeby dużo pisał. Może zacząć nawet od pascala czy pythona. Dobrze jest też poczytać ogólnie o algorytmice. Polecam "Wprowadzenie do algorytmów" Cormen'a.

Link do komentarza
Udostępnij na innych stronach

To programujesz niby tyle a nie wiesz że pomiędzy C i C++ różnicę są minimalne, że tak powiem kosmetyczne ? C/C++ to jak obecnie C++/C++0x. C++ obiektowy ? Program nie wymaga własnej klasy i dalej można użwać struktur zamiast klas. Obiektowymi nazwałbym raczej Jave albo C#, C++ jest bardzo wszechstronny co dalej, według mnie czyni go najwygodniejszym i najlepszym językiem programowania ;p

Link do komentarza
Udostępnij na innych stronach

Roznice minimalne ? No nie wiem... klasy, dziedziczenie, cala reszta obiektowosci to minimalna roznica ?
Wszystko jak najbardziej do odtworzenia w samym C. Herobrine twierdząc, że zmiany są kosmetyczne nieco jednak przesadza. Różnice składniowe odpowiedzialne za mechanizmy obiektowości są moim zdaniem za duże, żeby nazwać je kosmetycznymi.

W rozmowie brakuje jeszcze kwestii szablonów. To jest mechanizm, którego zwyczajnie nie ma w C, a potrafi być bardziej wygodny i wydajny niż obiektowość.

Link do komentarza
Udostępnij na innych stronach

Dla osoby która w życiu nie programowała w początkowym stadium nauki (taka osoba założyła ten temat) różnice będą kosmetyczne. Nie oszukujmy się szablony, klasy, dziedziczenie to odrobinę poważniejsze aspekty programowania. Przy pierwszym kontakcie z programowaniem szablony nie będą odgrywały żadnej istotnej roli.

W c++ nie trzeba programować obiektowo i twierdzenie, że c++ jest językiem obiektowym to głupota lub nieznajomość tematu. Jeśli kolega Hakken jest zainteresowany tematem programowania w c++ nieobiektowo to chyba jest na tyle inteligenty żeby wpisać odpowiednią frazę w google lub przeczytać odpowiednią książkę na ten temat.

Jeśli chodzi o cout to może dla kolegi Hakkena będzie to szok, ale nie każdy algorytm musi korzystać ze standardowego wyjścia.

Link do komentarza
Udostępnij na innych stronach

Twierdzenie, ze roznice miedzy C a C++ sa kosmetyczne, to

głupota lub nieznajomość tematu.

A aplikacje inne niz konsolowe, to

odrobinę poważniejsze aspekty programowania

ktore

Przy pierwszym kontakcie z programowaniem (...) nie będą odgrywały żadnej istotnej roli

Pisac strukturalnie w c++ mozna. Tylko po co ? Obiektowo pisze sie wygodniej i latwiej.

Link do komentarza
Udostępnij na innych stronach

Ale żeś powiedział lol. Aplikacje okienkowe poważniejsze aspekty programowania? może dla ciebie, od pisania można zaczynać równie dobrze okienkowo jak i konsolowo. Nieznajomośc tematu/głupota? I mówi to osoba która uznaje C++ za typowo obiektowy język? litości. Interesowały nas fakty na temat języka, to że wygodniej pisać obiektowo to kwestia tylko i wyłącznie gustu, bo różnicy w szybkosci działania programu nie uświadczysz, klas nie używając. Może trochę przesadziłem że zmiany są kosmetyczne, ale biorąc ogół to jest to wlasciwie ten sam język z paroma ułatwieniami i nowościami które można także uzyskać w C (wyjątki zostały podane już w innych postach). Jeżeli ktoś napisze program w C++ strukturalnie za to korzystajac z innych ułatwien tego języka i szybkosc bedzie większa od twojego 100% obiektowo napisanego programu to nazwiesz go głupim? Czy miałeś w ogóle kontakt z C?

Link do komentarza
Udostępnij na innych stronach

Generalnie nie widzi mi się dostosowywanie do twojego indywidualnego trybu intelektualnego kolego Hakken, jednak ostatni raz postaram Ci się wytłumaczyć łopatologicznie wszystko po kolei.

Tak jak już pisałem przy pierwszym kontakcie(ważne żebyś zwrócił na ten fragment uwagę) z programowaniem różnice będą kosmetyczne lub nie będzie ich wcale. Autor tematu zaczynając przygodę będzie przechodził przez wszystkie podstawowe elementy programowania zmienne/ instrukcje / operatory / wskaźniki. Jeśli dla Ciebie duża różnica jest między while C, a while C++ no to ja się poddaje.

Zgodzę się oczywiście, że zagłębiając się w tematykę różnice będą się zwiększały jednak temat dotyczy rozpoczęcia nauki programowania.

Nazywać C++ językiem obiektowym można. Uważać, że ziemia jest płaska też można. Tylko po co ?

Link do komentarza
Udostępnij na innych stronach

Juz pisalem: Mozna w c++ pisac nie-obiektowo, ale nie ma to wiekszego sensu. Bo, jak raczyles zauwazyc, miedzy while w C a while w C++ roznicy nie ma - natomiast nie napiszesz w C np. szablonu klasy.

Pisanie obiektowo jako wygodniejsze to tylko kewestia gustu ? Napisz strukturalnie duzy projekt, grupowo, na kilkanascie tysiecy linii kodu. Powodzenia.

Gdyby programowanie obiektowe nie bylo wygodniejsze, to by go nie uzywano - wszak programy napisane obiektowo dzialaja wolniej niz te pisane strukturalnie.

Nie widzialem jeszcze nigdy, ze ktos, kto dopiero zaczyna programowac robil aplikacje inne niz konsolowe.

Chyba, ze uzywa czegos w stylu "przeciagnij myszka z paska na gorze".

Oczywiscie, ze przy pierwszym kontakcie nie bedzie duzej roznicy. Przy pierwszym kontakcie nie ma nawet duzej roznicy miedzy pythonem a C. Miedzy C a C++ roznica bedzie jeszcze mniejsza, bo w sumie C++ tak jakby "wyrasta" z C, dodaje do niego nowe mozliwosci.

Link do komentarza
Udostępnij na innych stronach

Wreszcie dochodzimy do porozumienia. Od początku dokładnie to miałem na myśli. Co prawda kilkanaście tysięcy linijek kodu da się jeszcze spokojnie ogarnąć (choć nie będzie to wygodne), jednak przy kilkudziesięciu tysiącach jest to już niemożliwe.

Link do komentarza
Udostępnij na innych stronach

Przeczytalem jeszcze na spokojnie cala dyskusje, i chyba widze skad ta "klotnia" (ach, te rozkminy o 2 w nocy).

Otoz, C++ = C +... + :P Jak zauwazylismy, while czy if nie rozni sie niczym w C i C++, dlatego ja, mowiac, zeby zaczal od C i przeszedl na C++ mialem na mysli ogarniecie skladni C i dzialania procedur, a potem zaczecie pisania obiektowo (w C++). Po prostu jesli ktos uczy sie dopiero calej skladni, zasady dzialania while for if itp. to ciezko mi powiedziec, ze uczy sie C++, skoro tak naprawde nie uzywa tego, co dadano do C++ w stosunku do C.

Link do komentarza
Udostępnij na innych stronach

Tak jak już pisałem przy pierwszym kontakcie(ważne żebyś zwrócił na ten fragment uwagę) z programowaniem różnice będą kosmetyczne lub nie będzie ich wcale.

Złośliwie wetknę kij w mrowisko :> Wszyscy wiemy, że pierwszy program to zazwyczaj "hello world". Skoro tak, to trzeba ten tekst wypisać. W C użyjemy printf, natomiast w C++ większość kursów / książek będzie miała std::cout. Jest różnica? Jest. Jest duża? IMO jest :-)

Padła też kwestia wydajności aplikacji pisanych obiektowo i tych strukturalnych. W zdecydowanej większości ludzie mają to w nosie, bo i tak nie zauważają różnicy albo czas oczekiwania jest akceptowalny. A skoro tak, to obiektowo zwykle łatwiej i szybciej jest coś napisać.

Aplikacje okienkowe poważniejsze aspekty programowania? może dla ciebie, od pisania można zaczynać równie dobrze okienkowo jak i konsolowo

Ani C ani C++ nie posiadają wbudowanych mechanizmów tworzenia aplikacji okienkowych. Albo się korzysta z WinAPI, albo z innych bibliotek. Nie widziałem kursu C++ od podstaw, który zaczynał by się "zróbmy pierwsze okienko".

Generalnie nie widzi mi się dostosowywanie do twojego indywidualnego trybu intelektualnego kolego Hakken, jednak ostatni raz postaram Ci się wytłumaczyć łopatologicznie wszystko po kolei.

Generalnie nie widzą mi się takie komentarze wobec innych forumowiczów. Potraktuj to jako moją uprzejmą prośbę, by więcej tak nie pisać.

Po prostu jesli ktos uczy sie dopiero calej skladni, zasady dzialania while for if itp. to ciezko mi powiedziec, ze uczy sie C++

A niby dlaczego? Skoro while czy if są częścią C++, to ten ktoś uczy się C++. Że w C też to jest? Co z tego - w javie, C# i innych językach też to jest.

Link do komentarza
Udostępnij na innych stronach

Złośliwie wetknę kij w mrowisko

A zlosliwy ty, zlosliwy :laugh:

A dlaczego ciezko mi powiedziec, ze jak ktos z C++ uzywa tylko cout/cin , to pisze w C++ ? Ano wlasnie dlatego, znam zbyt wiele osob, ktorych kod to jest czyste C, tylko zamiast printf()/scanf() jest cout/cin, natomiast nie ma obiektowosci, ani nawet std::string zamiast tablicy charow. I takie zapozyczenie ma determinowac o tym, ze to juz jest C++ a nie C ?

To tak, jakbym pisal w C, kompilowal poleceniem g++ -S i twierdzil, ze jestem programista assemblera :P

Link do komentarza
Udostępnij na innych stronach

Język ustala środowisko, w którym piszesz / wybrany rodzaj projektu / użyty kompilator / użyte biblioteki. Czy piszesz "w pełni C++owo", czy w stylu C, ciągle jest to C++ - kwestia stylu. Gdyby było tak, jak piszesz, ktoś musiałby określić, w którym momencie można siebie nazwać programistą C++owym - np. dopiero wtedy, gdy używa się szablonów, strumieni i, powiedzmy, kontenerów z STL. Podkreślę jeszcze raz, że należy rozróżnić styl programowania od używanego języka.

Przykład z asemblerem jest nieadekwatny - asembler i C nie mają wspólnej części składni / gramatyki.

Link do komentarza
Udostępnij na innych stronach

Mysle, ze to kwestia niewiarygodnie dyskusyjna, i w sumie bez wiekszego znaczenia, bo tak jak powiedziales, nie ma wyznaczonej granicy miedzy programowaniem w C a w C++. No bo czy taki kod to jest C, czy C++:

#include <iostream>
int main()
{
    std::cout<<"Hello World";
}

Niby C++, ale czym sie rozni od C ?

zamienic

std::cout<<"Hello World";

na

printf("Hello World");

i juz mamy problem, bo iostream to biblioteka nalezaca do C++, ale zawiera printf, ktory jest typowy dla C.

Inny przyklad:

#include <stdio.h>
int main()
{
    bool x=true;
    if (x==true)
        printf("hello");
    return 0;
}

Tutaj mamy printfa, biblioteka tez jest z C, ale uzywamy bool-a. a tego w czystym C nie ma. Jaki jest to wiec jezyk ?

Logika podpowiada, ze C++, poniewaz kompilatorem do C (gcc) tego nie skompilujemy.

I tutaj wchodzi przyklad z assemblerem.

Za pomoca polecenia g++ -S uzyskam kod w asemblerze, majac kod w C++. Uzyskany w ten sposob kod moge skompilowac kompilatorem do C++ (g++), wiec mozna by powiedziec, ze dany kod jest napisany w C++... no ale przeciez to jest assembler.

Link do komentarza
Udostępnij na innych stronach

Cała dyskusja rozbija się o to, że C++ jest kompatybilny ze swoim poprzednikiem, C.

#include <iostream>
int main()
{
    std::cout<<"Hello World";
}

Niby C++, ale czym sie rozni od C ?

zamienic

std::cout<<"Hello World";

na

printf("Hello World");

i juz mamy problem, bo iostream to biblioteka nalezaca do C++, ale zawiera printf, ktory jest typowy dla C.

Właśnie kompatybilność, ale jednak C++ ze względu na bibliotekę, która się pod kompilatorem C nie skompiluje zapewne.

#include <stdio.h>
int main()
{
    bool x=true;
    if (x==true)
        printf("hello");
    return 0;
}

Tutaj mamy printfa, biblioteka tez jest z C, ale uzywamy bool-a. a tego w czystym C nie ma. Jaki jest to wiec jezyk ?

Logika podpowiada, ze C++, poniewaz kompilatorem do C (gcc) tego nie skompilujemy.

No i właśnie znów kompatybilność, bo C++ zbuduje bibliotekę stdio.h. Jest jeszcze kwestia kompilatora, który może posiadać bool w bibliotece do języka C. Odstępstwo, ale może tak być.

I tutaj wchodzi przyklad z assemblerem.

Za pomoca polecenia g++ -S uzyskam kod w asemblerze, majac kod w C++. Uzyskany w ten sposob kod moge skompilowac kompilatorem do C++ (g++), wiec mozna by powiedziec, ze dany kod jest napisany w C++... no ale przeciez to jest assembler.

Zauważ, że kompilując do asemblera wykonujesz tłumaczenie na inny język, a w tym momencie możesz porównać bardzo wiele języków. Równie dobrze mógłbyś przetłumaczyć pascala na asm (pewnie jest jakieś narzędzie) i też skompilować w g++.

Link do komentarza
Udostępnij na innych stronach

Tutaj mamy printfa, biblioteka tez jest z C, ale uzywamy bool-a. a tego w czystym C nie ma. Jaki jest to wiec jezyk ?
Jest jeszcze kwestia kompilatora, który może posiadać bool w bibliotece do języka C. Odstępstwo, ale może tak być.
Psikus, bool jest zgodny z C99.
Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...