Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 6. diel - Referenčné a hodnotové dátové typy

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Miroslav Mazal:17.8.2018 15:39

Asi chápu, tu základní myšlenku, kterou jsi mi napsal. Ale úplně to asi pochopím, až to prakticky budu muset někde použít.

Avatar
Rojo Violencia:5.1.2019 18:32

Web Itnetwork mi prijde az moc rozsahly, a tak jsem si pustil 4 a pul hodinove vyukove video o C# kde jsem se toho naucil opravdu hodne za pomerne maly cas (v anglictine).Nicmene ani jednou jsem nepouzil "public override string" a nejsem si presne jisty k cemu slouzi. Tak jsem si to tady cele precetl a nejak jsem nepobral ten potencial, v cem je ta vyhoda oproti tomuto reseni ?

Avatar
Odpovedá na Rojo Violencia
Neaktivní uživatel:5.1.2019 20:36

Většina metod, která potřebuje z jakéhokoliv důvodu získat řetězec, zpravidla používá <code>object.ToS­tring()</code> (teda pokud se nepletu, nijak podrobně jsem to neprocházel), kde <code>object</code> je samozřejmě hodnota, kterou metoda dostala v parametrech. Takže je jednodušší napsat jen <code>u</code>, a ne <code>u.jmeno</co­de>. A co kdybys chtěl místo jména použít (třeba) vzdělání? Bavilo by tě přepisovat skoro (ne úplně, tím se situace zhoršuje) každé <code>u.jmeno</co­de> na <code>u.vzdela­ni</code>? (nebo jméno a věk, to bývá běžnější)

Odpovedať
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Rojo Violencia:5.1.2019 20:39

Uz jsem to pochopil :) Diky

Avatar
Libor Novák
Člen
Avatar
Libor Novák:21.6.2019 9:25

Tento článek ve mě vzbuzuje dojem, že jazyky Pascal a C/C++ jsou zastaralé a používání ukazatelů je přežitek. Rád bych zdůraznil, že jazyky C-sharp a Java vychází pravě z jazyka C/C++ a označují se za jazyky rodiny C či C like jazyky. Pokud budete umět C/C++ umíte 90% všech programovacích jazyků rodiny C a ještě rozumíte práci s ukazateli. To je obrovská výhoda. Jazyk C/C++ je stejně moderní jako C# nebo Java. Jen je to jazyk nižší úrovně, díky čemuž je ovšem mnohem mocnější a robustnější a umožňuje tak programovat velmi širokou škálu aplikací, které jsou navíc velmi rychlé a výkonně, protože kód v C/C++ je plně kompilován, nikoli částečně, jako v C# nebo v Javě. Možnost řízení práce s pamětí pomocí ukazatelů nám dává tu výhodu, že můžeme s pamětí pracovat velmi efektivně a tak může být aplikace velmi rychlá s nízkou režii. Nevýhoda jazyka C++ je v tom, že je oproti C# složitější na pochopení.
I když s ukazateli v C# nepracujeme přímo je dobré je znát. Mnozí programátoři, kteří ukazatele neznají, pak nechápou, co je to vlastně this a jak fungují reference na objekty a pak v programech vytváří velmi záludné chyby. Jazyky C/C++ stanovily principy programování, které převzaly i ostatní programovací jazyky. Jazyky Java a C# jsou na vyšší úrovni než C/C++ a jsou tedy vhodnější pro jiné typy aplikací než jazyk C/C++. To ale neznamená, že by byl jazyk C/C++ zastaralý a nemoderní. Je dokonce normován mezinárodní normou ANSII, což jazyky C# a Java nejsou.
Jazyk Pascal slouží pouze jako výukový jazyk, na kterém si začínající programátor osvojí principy a techniky programování. Pascal je jednodušší na pochopení než C a proto se používá při výuce programování například na Matfyzu nebo ČVUT. Z Pascalu se pak přechází většinou na C++ a Java či C# jsou volitelné jazyky. C# má o něco přívětivější syntaxi než C++ a proto pro program, který není náročný na výkon a poběží na nějaké platformě Microsoftu, je vhodnější použít C# než C++.

Avatar
Odpovedá na Libor Novák
Nositelka Změny:4.1.2020 13:33

"Jazyk C/C++ je stejně moderní jako C# nebo Java. Jen je to jazyk nižší úrovně, ..."
Tohle je trochu podezřelá věta. Troufám si říci, že C(++) nejsou moderní, ale ani zastaralé, protože nabízí možnosti, které v C#/Java ani nejdou udělat. Navíc jejich vývoj nebyl přerušen, v roce 2018 byla vydána poslední norma pro C a letos se chystá nová norma pro C++.
Taky jsem někde četl, že C++ sice nemá GC, ale má něco lepšího a je i proto rychlejší než C#/Java. Je to sice článek starý 6 let, ale nemyslím si, že zrovna tohle bylo jinak (spíš to bude ještě lepší :-) )

Avatar
Václav Pekárek:4.1.2020 13:46

Díky za článek :-)

Odpovedať
Cogito ergo sum
Avatar
David
Člen
Avatar
David:9.4.2020 0:35

Díky za článek. ;-)

Avatar
Ondrej Chodura:18.4.2020 11:29

ahoj, nasel jsem tam chybku - "konstruktor a přetížený ToString(), abychom uživatele mohli jednoduše vypisovat."

  • jedna se o prekryvani metody, ne o pretizeni, to je uplne neco jineho.
Avatar
E.K.
Člen
Avatar
E.K.:21.4.2020 14:42

Ahoj. Díky za tutoriál. Chtěl jsem si ověřit, jak se chová v tomto případě datový typ string. Pokud je tedy referenční, proč v následujícím kódu je výsledek poroměnných S1 a S2 rozdílný. Neměly by být oba stringy "dcba". Tady to vypadá tak, jakoby se nepřiřadila reference, ale celý obsah stringu. Díky.
static void Main(string[] args)
{
string S1, S2;

S1 = "ABCD";
S2 = "EFGH";
Console.Write­Line("S1 = {0}, S2 = {1}",S1,S2);
S2 = S1;
Console.Write­Line("S1 = {0}, S2 = {1}",S1,S2);
S1 = "dcba";
Console.Write­Line("S1 = {0}, S2 = {1}",S1,S2);
Console.ReadLine();
}

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 55.