Přechod z C# a ostatních jazyků na C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přechod z C# a ostatních jazyků na C++ – C / C++ – Fórum – Programujte.comPřechod z C# a ostatních jazyků na C++ – C / C++ – Fórum – Programujte.com

 

Jan Tržický
~ Anonymní uživatel
1 příspěvek
6. 3. 2015   #1
-
0
-

Zdravíčko, přišel jsem se optat jak jste se dostali do tak pokročilé úrovně v jazyku C++.

Jakož osmnáctiletý kluk toho už mam docela dost za sebou a ovládám zcela hodně jazyků jakož jsou:

C#, Java, Pawno, Nette (framework na php), i čisté php včetně html\css, ale zcela se mi nedaří pochopit jazyk C++. 

V ostatních jazykách dokážu všechno naprogramovat z hlavy (někdy dopomůže IDE) ale v Céčku je tolik věcí že to si snad ani lidskej mozek nemůže zapamatovat. Proto se chci zeptat jestli tu není někdo kdo přecházel z jazyků jako já na Céčkovej (objektivní céčko) a jak popřípadě postupoval. Na internetu jsem si už prošel celé dva anglické návody ale furt se zadrhávám na používání ukazatelů a referencí.

Máte něco konkrétního na doporučení? Nějakou knížku, popřípadě webovou stránku?

Omlouvám se za pravopisné chyby, ale myslím si že programování bude o něčem jiném než o í\ý.

Nahlásit jako SPAM
IP: 46.16.121.–
Matěj Andrle+1
Grafoman
6. 3. 2015   #2
-
0
-

#1 Jan Tržický
Zcela hodně? :D Já se již delší dobu považuji zanaprostého začátečníka - když vím, kolik toho ještě nevím. A to ovládám D/D2, Assembler, strojový kód, Luu, Valu, R, K/K++, C/C++, Bison & Flex, C#, Perl, LISP, Ruby, (Iron) Python, F/F#, něco málo z BASIC, ... + web (Ruby on Rails, JS, PHP, ASP, ASP.NET, ...). Leč samotnou znalost všech jazyků považuji za zcela zbytečnou. Sáhl jsem si až na strojový kód, neb abych věděl... (Co se stane, když... Co se skrývá za tímto klíčovým slovem? Atd.)  A věz, že jsem se učil pouze samotnou praxí. C++ udržují naživu především starší generace, starší projekty atd. Pročež pro moderní svět tu je C# atd.

Nahlásit jako SPAM
IP: 78.136.145.–
vitamin
~ Anonymní uživatel
1092 příspěvků
6. 3. 2015   #3
-
0
-

#1 Jan Tržický
Knihy mas tu: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list (niektore su aj na torrentoch/uloz.to/...)

Treba si uvedomit ze C++ nie je C#. Aj ked sa velmi podobaju, tak sa v nich programuje uplne inak.

Nahlásit jako SPAM
IP: 195.28.77.–
ondrej39+1
Věrný člen
6. 3. 2015   #4
-
0
-

#1 Jan Tržický
Kdybys chtěl pomoct s ukazateli, recerencemi, napiš mi na mail simon@programujem.eu, nebo na skype web.pudicus, rád ti základy pointerové aritmetiky vysvětlím.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
KIIV
~ Moderátor
+43
God of flame
6. 3. 2015   #5
-
0
-

Zaklad C++ neni zase tak moc obrovskej. Nejslozitejsi cast tvori sablony. Neco malo objekty. Pointery jsou jednoduchy (pokud si uz delal s nejakym jednocipem nebo v assembleru tak tim spis - ikdyz C/C++ se ti stara v pointerove aritmetice o to, aby se pri +1 pricetl spravny pocet bajtu podle typu - to v assembleru musis delat ty).

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondrej39+1
Věrný člen
6. 3. 2015   #6
-
0
-

#5 KIIV
KIIVe, do šablon počítáš i metaprogramování?

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
KIIV
~ Moderátor
+43
God of flame
6. 3. 2015   #7
-
0
-

#6 ondrej39
Ano hlavne metaprogramovani.

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondrej39+1
Věrný člen
6. 3. 2015   #8
-
0
-

#7 KIIV
Neměl bys k tomu nějaké dobré učební pomůcky? Případně zda vůbec má cenu se metaprogramování učit? Kdesi jsem už tu na fóru psal, že jsem si vypůjčil knížku Modern C++ Design od Andreie Alexandrescua, ale ta četba je na mě moc složitá a hledám nějaký vhodnější vstup pro začátečníky.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
KIIV
~ Moderátor
+43
God of flame
6. 3. 2015   #9
-
0
-

#8 ondrej39
no mam tu treba: http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB4QFjAA&url=http%3A%2F%2Fconradsanderson.id.au%2Fmisc%2Fsanderson_templates_lecture_uqcomp7305.pdf&ei=SX35VJ7yEILQygPyuoLYCQ&usg=AFQjCNG6sL0gx8ws11kVY0W8h7xK2PO62w&bvm=bv.87611401,d.bGQ&cad=rja

ale uz je to zastaraly, s novym standardem by ty sablony mely zvladat i mnohem vic jako promenlivy pocet parametru a tak

(a hlavne jsou to "pokrocile techniky", takze nejakej zaklad to chce stejne nastudovat odjinud)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondrej39+1
Věrný člen
6. 3. 2015   #10
-
0
-

#9 KIIV
Tu přednášku jsem kdysi četl, tam je to vysvětlené docela dobře, jednoduše, to jsem dokonce pochopil.

V mnou zmiňované knížce je první kód, na který člověk narazí, tento (kód z předmluvy):

template<int m1, int l1, int t1, int m2, int l2, int t2>
Fyzikalni<m1+m2, l1+l2, t1+t2> operator*(Fyzikalni<m1, l1, t1> lhs,
Fyzikalni<m2, l2, t2> rhs)
{
return Fyzikalni<m1+m2, l1+l2, t1+t2>::unit*lhs.value()*rhs.value();
}

a to už můj primitivní mozek opravdu není schopnej pobrat :D.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
PiranhaGreg0
Stálý člen
6. 3. 2015   #11
-
0
-

Já jsem se dostal k C/C++ díky VŠ (ČVUT FIT), kde se tato kombinace využívá v mnoha předmětech, takže se to člověk prostě musí naučit. Navíc nám tyto jazyky v rámci dvou semestrů výborně vysvětlili (C++ jen z části, zbytek samostudium).

Vyšších jazyků už jsem předtím uměl dost (C#, Java, PHP, JavaScript, ...) a přechod nebyl lehký. Ten program je pak sice v průměru 10x rychlejší, ale taky je 10x delší a složitější na pochopení. To je trochu demotivující :D.

A hlavně C++ je extrémně komplexní jazyk. Nový standardy C++11/14/17 přinášejí do jazyka opravdu enormní množství featur a věř mi, že číst C++11 zdroják, kde autor využívá všechny vychytávky jazyka je opravdu utrpení.

Kde se to naučit asi moc neporadím. Já jsem k těm novým vlastnostem přicházel postupně jak jsme se to učili na škole + třeba když jsem něco potřeboval do nějakého programu. Hodně jsem toho taky vykoukal z cizích zdrojáků...

Nahlásit jako SPAM
IP: 109.81.210.–
vitamin
~ Anonymní uživatel
1092 příspěvků
6. 3. 2015   #12
-
0
-

#10 ondrej39
template<int m1, int l1, int t1, int m2, int l2, int t2>    //template parametre
Fyzikalni<m1+m2, l1+l2, t1+t2>     //navratovy typ
operator*    //meno funkcie
(
    Fyzikalni<m1, l1, t1> lhs,    //parameter funkcie 1
    Fyzikalni<m2, l2, t2> rhs    //parameter funkcie 2
)
{
    return Fyzikalni<m1+m2, l1+l2, t1+t2>::unit * lhs.value() * rhs.value();    //daky exprssion, na pochopenie by trebalo deklaraciu triedy Fyzikalni
}

Nahlásit jako SPAM
IP: 213.81.135.–
vitamin+8
Grafoman
6. 3. 2015   #13
-
0
-

   

template<int m1, int l1, int t1, int m2, int l2, int t2>    //template parametre
Fyzikalni<m1+m2, l1+l2, t1+t2>     //navratovy typ
operator*    //meno funkcie
(
    Fyzikalni<m1, l1, t1> lhs,    //parameter funkcie 1
    Fyzikalni<m2, l2, t2> rhs    //parameter funkcie 2
)
{
    return Fyzikalni<m1+m2, l1+l2, t1+t2>::unit * lhs.value() * rhs.value();    //daky exprssion, na pochopenie by trebalo deklaraciu triedy Fyzikalni
}
Nahlásit jako SPAM
IP: 195.28.77.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
oxidián0
Grafoman
6. 3. 2015   #14
-
0
-

Mě přijde nejlepší učit se nejdříve C a pak C++. C++ je komplikovanější než C, ale závisí to na úhlu pohledu. C se mi zdá dobrý základ na pochopení C++. Právě protože si to nemůžeš zapamatovat začni s C. Je tam méně věcí co si člověk musí pamatovat.

Nahlásit jako SPAM
IP: 78.45.199.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý