C++ za 21dni-Problem v dni 10 – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ za 21dni-Problem v dni 10 – C / C++ – Fórum – Programujte.comC++ za 21dni-Problem v dni 10 – C / C++ – Fórum – Programujte.com

 

x-time
~ Anonymní uživatel
19 příspěvků
27. 1. 2008   #1
-
0
-

Dobrý den, projíždím knížku c++ za 21 dni a tekom sem narazil na problem. V výpisu třeba 10.15:

#include <iostream>

using namespace std;

class KOCKA
{
public:
KOCKA(); // výchozí konstruktor
// konstruktor pro kopírování a destruktor zmizely!
int ZiskejVek() const { return *vekKocky; }
int ZiskejVahu() const { return *vahaKocky; }
void NastavVek(int vek) { *vekKocky = vek; }
KOCKA & operator=(const KOCKA &);

private:
int *vekKocky;
int *vahaKocky;
};

KOCKA::KOCKA()
{
vekKocky = new int;
vahaKocky = new int;
*vekKocky = 5;
*vahaKocky = 9;
}

KOCKA & KOCKA::operator=(const KOCKA & ptr)
{
if (*this == ptr)
return *this;
*vekKocky = ptr.ZiskejVek();
*vahaKocky = ptr.ZiskejVahu();
return *this;
}


int main()
{
KOCKA micka;
cout << "Vek Micky je: " << micka.ZiskejVek() << endl;
cout << "Nastaveni veku Micky na 6...\n";
micka.NastavVek(6);
KOCKA fousek;
cout << "Vek Fouska je: " << fousek.ZiskejVek() << endl;
cout << "Zkopirovani Micky na Fouska...\n";
fousek = micka;
cout << "Vek Fouska je: " << fousek.ZiskejVek() << endl;
return 0;
}

nikde nepopisuje proč se tady: KOCKA & operator=(const KOCKA &); za KOCKA použije operator odkazu pak samozřejmě musí byt automaticky i tady: KOCKA & KOCKA::operator=(const KOCKA & ptr) ale sem se chtěl zeptat co to dělá jestili se KOCCE přiřazuje jako odkazu to co je uvnitř operator=(const KOCKA & ptr){} a nebo něco jiného.. Popřípadě co by to udělalo kdybych napsal za KOCKA *(pointer). Díky za odpověd

Nahlásit jako SPAM
IP: 195.39.15.–
x-time0
Newbie
27. 1. 2008   #2
-
0
-

Popřípadě to samé v výpisu 10.11:



#include <iostream>

using namespace std;

class Citac
{
public:
Citac();
~Citac(){}
int ZiskejHodnotu()const { return hodnota; }
void NastavHodnotu(int x) { hodnota = x; }
void Inkrementace() { ++hodnota; }
const Citac& operator++ ();

private:
int hodnota;

};

Citac::Citac():
hodnota(0)
{}

const Citac& Citac::operator++()
{
++hodnota;
return *this;
}

int main()
{
Citac i;
cout << "Hodnota citace i je " << i.ZiskejHodnotu() << endl;
i.Inkrementace();
cout << "Hodnota citace i je " << i.ZiskejHodnotu() << endl;
++i;
cout << "Hodnota citace i je " << i.ZiskejHodnotu() << endl;
Citac a = ++i;
cout << "Hodnota a: " << i.ZiskejHodnotu();
cout << " a hodnota i: " << i.ZiskejHodnotu() << endl;
return 0;
}

Nahlásit jako SPAM
IP: 195.39.15.–
_k_
Duch
27. 1. 2008   #3
-
0
-

He, no necakaj ze v knizkach s nazvom "Naucte sa XXX za YY dni" (kde YY je cislo pod 50 ;) bude nieco poriadne vysvetlene ;)
Ale aj tak som nepochopil co sa vlastne pytas... Ale odkazy sa pouzivaju aby si nezasieral stack tym ze tam a z neho budes tie objekty kopirovat, nehovoriac o tom ze to zerie cas ked je ta trieda vacsia...

Nahlásit jako SPAM
IP: 195.91.54.–
x-time0
Newbie
27. 1. 2008   #4
-
0
-

Jj jasně za 21 dni to je blbost :-), radili by ste mi raděj Mistrovství? Jinak si mi na to odpověděl... (asi). nebylo mi totiž jasné jestli ten odkaz poukazuje na tělo funkce nebo k čemu tam je .. takže z toho co jsem pochopil asi ano. Diky

Nahlásit jako SPAM
IP: 195.39.15.–
ristii0
Duch
9. 2. 2008   #5
-
0
-

dobrej den všem.Skouším se taky naučit v C++ za 21 dní a mam problém ale ne s dnečm 10 ale stím základním přes co mam programovat??? Vím že to není do tohoto tematu ale mohli by stemi pomoci???

Moc díky Mišu

Nahlásit jako SPAM
IP: 217.117.217.–
Tomas_Dejmek
~ Anonymní uživatel
52 příspěvků
10. 2. 2008   #6
-
0
-

X-time: No hele Mistrovství v C++ je asi nejlepší kniha o C++ co se dá v Čj koupit, já jsem do ní šel taky, pak jsem teprve pochopil, že jsem vubec nemusel váhat a měl do ní jí hned. Jestli sis už koupil to naučte, tak ho dočti. Do Ms můžeš jít potom, v Ms to je hezky podrobně vysvětleno, takže se nemušíš bát, že budeš číst to samí, nebudeš.

ristii: Pro první začátky bych ti doporučil Dev-C++ od Bloodshedu (download http://www.bloodshed.net/download.html ), do budoucna třeba Visual studio od Microsoftu.
V Dev-C++ založíš konzolovej projekt a pak co napíšeš kod můžeš dát kompilovat(ve Vs dáš build jinak se to nemění ;) ). Ale neřikej, že to v té knize nikde nepíšou!

Nahlásit jako SPAM
IP: 85.160.89.–
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, 42 hostů

Podobná vlákna

C++ za 21 dni — založil sexmachina

Odpočet dní — založil cheeester

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ý