Chyba v kódu C++

webhope

Re:Chyba v kódu C++
« Odpověď #30 kdy: 20. 11. 2013, 13:35:13 »
Nevím podle čeho usuzujete že mi chybí základy. Odkud je podle vás mám z internetu čerpat? Učit C++ jsem se začal před 10 týdny, začal jsem na cplpluplus tutoriálech a to jsem četl dvakrát, plus, jsem zkoušel kódy. Pak jsem jel na builderu gui 20 článků a s těmi jsem neměl problém. Pak jsem jel tu sekci článků co je tady, teorii nejdříve asi 17 článků, teď zkouším ty kódy. Nevzal jsem ty kódy k otestování úplně popořadě, ale to nic nemění na tom, že autor některé věci vynechal, jako že v kódech nepoužívá using namespace std; atd. a čtenář musí na zbytek přijít sám - což podstatně začátečnikovi ztíží chápání kódu. Řekne si proč to nejede. Třeba to očekávání vstupu, ale není vysvětleno jaký druh vstupu vlastně mám zadat. Tak jak mám vědět co mám řešit, když nevím co ode mě autor článku chce.
To že ty hlásky ve Visual Studiu jsou nepřehledné taky není moje chyba, takže se příčiny chyb hůře zjišťují. Prostě se učím za chodu.


eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Chyba v kódu C++
« Odpověď #31 kdy: 20. 11. 2013, 13:40:07 »
Minimálně já jsem Ti dvakrát psal, z čeho čerpat.

A ano, chybí Ti základy.

Hlášky z C++ kompilátoru možná nejsou z nejpřehlednějších, ale kdybys je četl a znal základy, na většinu chyb bys přišel.

webhope

Re:Chyba v kódu C++
« Odpověď #32 kdy: 20. 11. 2013, 13:49:57 »
Sten:
Píše mi to Objekt nenacten takže mluvím o tomto:
Kód: [Vybrat]
cin >> m;ne o tomto:
Kód: [Vybrat]
ofstream f("data.txt");tam jsem se ještě nedostal.

eMko:
Ty si mě psal kde? Sis mě asi s někým spletl!
Jestli myslíš tyhle základy tak zrovna to jsem nečetl,
http://www.builder.cz/rubriky/c/c--/zaklady-oop-v-c-od-c-k-c--155657cz
ale četl jsem na cplusplus. Letem světem, ten článek neobsahuje nic nového co bych na cplusplus nečetl a taky tam nevidím nic o těch hlavičkových souborech a namespacech. Povšimni si že namespacy "Prostory jmen v C++" jsou až v 18 článku někde za paměťovými proudy!

Re:Chyba v kódu C++
« Odpověď #33 kdy: 20. 11. 2013, 14:35:53 »
Ty nás tady asi všechny taháš za fusekli, ne? ;-)
A jestli ne, tak na ty základy doporučuju spíš nějakou literaturu (např. http://www.amazon.com/Complete-Idiots-Guide-Paul-Snaith/dp/0789718162, příp. http://www.amazon.com/For-Dummies-Stephen-R-Davis/dp/0470317264/ref=pd_sim_sbs_b_2) než seriál na builder.cz notabene když je to ještě článek o C++ pro někoho kdo zná C, takže se spousta věcí se tak nějak předpokládá.

jinak stručně k tomu kódu:
1. vykašli se na friend členy třídy - zbytečně to začátečníka mate. A tohle není případ, kde by to bylo potřeba.
místo toho u operátoru výstupu použij public členy.
Kód: [Vybrat]
std::ostream& operator << (std::ostream &os, MyClass &objekt)
{
   return (os << objekt.getA() << ", " << objekt.getB()); //tam je ten whitespace (i s čárkou), abys poznal co to sype ven (taky už to někdo radil)
}

2. C/C++ má tak trochu úchylku co se typů týče. Prostě to není PHP a string do integeru nedostaneš ani omylem (že by reinterpret_cast? ;-) )
Takže pokud se snažíš na vstup cin >> m zadávat cestu k souboru (jak kdesi popisuješ), tak na základě definovaného výstupního proudu moc nepochodíš, když tam čekáš 2x integer. A to je ten důvod proč ti to píše "Objekt nenacten".

3. Pokud se nenaučíš aspoň trochu (trochu víc) zvládat C/C++ tak na WinAPI tak nějak radši zapomeň a zkus např C# a WinForms

Jinak by mě, čistě ze zvědavosti zajímaly, proč takové ambice naučit se C++. Jestli by nebylo lepší zkusit něco jiného

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Chyba v kódu C++
« Odpověď #34 kdy: 20. 11. 2013, 14:57:08 »
Ty si mě psal kde? Sis mě asi s někým spletl!

Za posledních pár týdnů jsi tu založil minimálně dva thready týkající se programování v C++ (možná jich bylo víc - fórum na rootu nečtu nějak podrobně). Tam jsem Ti psal. A ne, nesplet jsem si Tě - Tebe si nelze s nikým splést. Upřímně, potkat Tě na přijímacím pohovoru tady ve firmě, tak letíš - a ne dveřmi, ale oknem, upozorňuji, že je to 13 pater.

Chápu, že se učíš - každý někdy začínal. Ale Ty prostě neposloucháš dobře míněné rady od nikoho. Kdyby jen ode mě, tak je mi to celkem jedno - nejsem mistr světa (nepočítáme-li brnkání na nervy) a mám na mnohé věci odlišný názor od ostatních tady na fóru. Ale s Tvým přístupem se programovat nenaučíš nikdy.


webhope

Re:Chyba v kódu C++
« Odpověď #35 kdy: 20. 11. 2013, 15:07:56 »
jholas:
Vřelé díky za odpověď. Ambice. Já nemám ambice. Pro něco se rozhodnu a jdu za tím. Už jsem začal, takže to dokončím.
Builder mi právě přišel dobrý v tom, že je česky a tudíž to pro mě v mnohém bylo snadnější. Spousta ukázkových kódů, to je velká výhoda.
Takže jsem to bral jako příležitost vyzkoušet si to o čem se píše na cplusplus.
No dobrá tedy, a když zadávám to číslo (tedy ještě než vyzkouším to co si napsal), zmáčknu párkrát enter a nic. No a když bych dal číslo  ctr+z jako na ukončení vstupu tak to taky vrátí chybný výsledek, takže objekt nenalezen.

Emko,
tak zrovna tebe si už pamatovat budu, protože takové lidi jako ty moc nemusím. Nesnáším totiž, když mi někdo říká co mám dělat a kor, když mě odrazuje od mých osobních předsevzetí a říká že nic nedokážu. Takových lidí jako ty jsem už potkal hodně co mi říkali že nic nedokážu, a zvysoka na tebe ... víš co. Mám tě někde. Ale chci být slušný. Takže když tě to tak moc obtěžuje rač na moje vlákna nereagovat!

webhope

Re:Chyba v kódu C++
« Odpověď #36 kdy: 20. 11. 2013, 15:27:37 »
Jinak jsem prošel asi 4 vlákna co jsem tu založil a žádné linky od Emka jsem tam nenašel. Jestli to tu někomu vadí, že zakládám vlákna, tak mi to račte říct, protože na každém foru jsou jiné zvyklosti. Někde to chtějí mít všechno v jednom vláknu a jinde zas pro každou otázku nové vlákno. A jestli tu někomu brnkám na nervy, tak mě prosím nečtěte! Děkuji!

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Chyba v kódu C++
« Odpověď #37 kdy: 20. 11. 2013, 15:44:49 »
Sice jsem Ti nedal přímé odkazy jak někteří tady, ale i tak bys měl mít dost informací.

Good luck!

webhope

Re:Chyba v kódu C++
« Odpověď #38 kdy: 20. 11. 2013, 15:58:24 »
Ok, jenže to učení to není tak, že když si něco přečtu, že si to hned vše zapamatuju. Učení je proces, který se skládá ze střídání teorie a praxe a opakování.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Chyba v kódu C++
« Odpověď #39 kdy: 20. 11. 2013, 17:07:12 »
Samozřejmě, programovat se zatím nikdo nenaučil pouhým přečtením knížky. Ale bereš si toho na sebe evidentně moc - C++ je jeden z nejkomplexnějších jazyků, který se v současné době masivně používá a Ty jdeš do toho rovnou po hlavě - to je jak kdybys hrál Doom II rovnou na obtížnost "Nightmare". "I'm too young to die" je jednodušší ;-)

webhope

Re:Chyba v kódu C++
« Odpověď #40 kdy: 20. 11. 2013, 17:22:29 »
Jasně, ale učit se psát abstraktní třídy a šablony je zajímavější než učit se psát cout << "Hello world!" :-)

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Chyba v kódu C++
« Odpověď #41 kdy: 20. 11. 2013, 17:35:42 »
To samozřejmě ano :-) . Bohužel těmi základy je nutno se prokousat.

j

Re:Chyba v kódu C++
« Odpověď #42 kdy: 20. 11. 2013, 17:53:55 »
Nevím podle čeho usuzujete že mi chybí základy. Odkud je podle vás mám z internetu čerpat? Učit C++ jsem se začal před 10 týdny, začal jsem na cplpluplus tutoriálech a to jsem četl dvakrát, plus, jsem zkoušel kódy. Pak jsem jel na builderu gui 20 článků a s těmi jsem neměl problém. Pak jsem jel tu sekci článků co je tady, teorii nejdříve asi 17 článků, teď zkouším ty kódy. Nevzal jsem ty kódy k otestování úplně popořadě, ale to nic nemění na tom, že autor některé věci vynechal, jako že v kódech nepoužívá using namespace std; atd. a čtenář musí na zbytek přijít sám - což podstatně začátečnikovi ztíží chápání kódu. Řekne si proč to nejede. Třeba to očekávání vstupu, ale není vysvětleno jaký druh vstupu vlastně mám zadat. Tak jak mám vědět co mám řešit, když nevím co ode mě autor článku chce.
To že ty hlásky ve Visual Studiu jsou nepřehledné taky není moje chyba, takže se příčiny chyb hůře zjišťují. Prostě se učím za chodu.

heh ... ehm ... mno .. vis, trebas to s tim std je snad v prvni kapitole kazdyho tutorialu.
A pokud dobre vidim, tak ac neprogramator, nevim nic o tom, ze by se do hacek davala implementace. Tam patri pouze deklarace.

Takze zcela zjevne neznas ani ty nejvetsi zaklady, ktery znam i ja, jakozto neprogramator. Kdybys tomu venoval 10 tydnu, tak to davno musis vedet.

webhope

Re:Chyba v kódu C++
« Odpověď #43 kdy: 20. 11. 2013, 18:04:35 »
"Takze zcela zjevne neznas ani ty nejvetsi zaklady, ktery znam i ja, jakozto neprogramator. Kdybys tomu venoval 10 tydnu, tak to davno musis vedet."
Nemusím, nic nemusím. Ale to neznamená, že jsem to nečetl! I když teď nevzpomínám, že by to to na cplusplus bylo, nicéně, o tomhle zrovna vím. Jenže opajuju, že vědět není to samé jako znát! Vědět je terorie, a praxe, to je skrze první kroky ve vlastní tvorbě! Učit se lze jedině na chybách! Já teď tvořím svoje vlastní a první skripty, tzn. že to jsou MOJE první pokusy!

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Chyba v kódu C++
« Odpověď #44 kdy: 20. 11. 2013, 19:04:35 »
Chlape, Ty mě nebudeš mít rád. Doufám, že nejsi z té naší černouhelné ďury mezi dvěma půlkama jménem Ostrava, bo bych asi musel chodit kanalama, zas rypu.

I když teď nevzpomínám, že by to to na cplusplus bylo

Jestli myslíš cplusplus.com, tak tam bych to ani nečekal. Ač je to velmi cenný zdroj informací (taky ho používám), je to spíš referenční web. Ve výkladovém slovníku taky nenajdeš podrobně vysvětlenou gramatiku jazyka; je tam stručně spíš pro případ "když zapomeneš syntax". Ne všechno, co je zažitá dobrá praxe, je i na cplusplus. Čistě mezi náma, když napíšeš #include "MyClass.cpp" kde budeš mít jak deklaraci tak implementaci, fungovat to bude taky. To neznamená, že by se to mělo dělat. V knihovně boost (což je mnohými považováno za "druhou a neoficiální základní knihovnu") máš spoustu tříd, které mají implementaci v .h souborech. Borci, co to psali, pro to mají dobrý důvod, ale neznamená to, že by se to mělo dělat všude a denně, právě naopak. A i oni na svém webu napsali zdůvodnění ;-) .

Já teď tvořím svoje vlastní a první skripty

Zas budu vypadat jako rejpal, ale C++ není skriptovací jazyk a o programech v něm napsaných nelze mluvit jako o skriptech. Ačkoliv je to možná blbost a slovíčkaření a tady všichni víme, co máš na mysli, může v jiných kontextech docházet k celkem drastickým nedorozuměním.

Učit se lze jedině na chybách!

Pravdu díš! Ale je lepší se učit na cizích chybách. Jednak je život příliš krátký na to, abys je všechny stihl spáchat sám a ještě si z nich vzít ponaučení, druhak je lepší, když je za kokota někdo jinej ;-) .