Začátečnická chyba - třída – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Začátečnická chyba - třída – C / C++ – Fórum – Programujte.comZačátečnická chyba - třída – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
začátečník
~ Anonymní uživatel
412 příspěvků
26. 8. 2011   #1
-
0
-

Dobrý večer,

začal jsem se učit c++ a nyní se učím třídy. Chtěl jsem si deklarovat jednoduchou třídu:

class Trida

{

private:

int cislo = 5;

}

ovšem při překladu mně to píše chyb u překladu, že proměna asi musí být definována jako statická, ovšem i když přidám slovo static, tak si nijak nepomůžu :( neporadil by někdo prosím? 

Nahlásit jako SPAM
IP: 81.19.46.–
Reklama
Reklama
yaqwsx+9
Posthunter
26. 8. 2011   #2
-
0
-

Třída je šablona pro vytvoření objektu a a sama o sobě nemůže říkat, jaké hodnoty mají její atributy. Až objekt nese tyto hodnoty;

class Trida
{
	public:
		int cislo;
};

int main()
{
	Trida objekt;
	objekt.cislo = 5;
	return 0;
}

EDIT: Doplněn středník; nějak jsem ho opomenul

Nahlásit jako SPAM
IP: 85.160.80.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
fnenks+1
Stálý člen
26. 8. 2011   #3
-
0
-

a jeste by mel byt strednik za slozenou zavorkou

Nahlásit jako SPAM
IP: 88.101.84.–
začátečník
~ Anonymní uživatel
412 příspěvků
27. 8. 2011   #4
-
0
-

děkuji, ale když chci mít v každé třídě definovanou jednu konstantu, která bude ve všech objektech stejná, to nejde?

Nahlásit jako SPAM
IP: 81.19.46.–
Xauder
~ Anonymní uživatel
6 příspěvků
27. 8. 2011   #5
-
0
-

#1 začátečník
V C++ vela neprogramujem, ale zrejme v tomto jazyku nemozes atributu hned priradit hodnotu, takze tam zrejme nesmie byt " = 5"

Nahlásit jako SPAM
IP: 85.237.229.–
Xauder
~ Anonymní uživatel
6 příspěvků
27. 8. 2011   #6
-
0
-

#5 Xauder
Nevsimol som si dopovede, ospravedlnujem sa. Asi som oslepol :)

Nahlásit jako SPAM
IP: 85.237.229.–
street punk+1
Návštěvník
27. 8. 2011   #7
-
0
-

Po triedy som sa síce ešte nedostal, ale keď chceš mať konštantu, ktorá bude všade taká istá, tak ju daj pod 
#include <....>
napríklad

const int arsize = 5;


a potom už namiesto 5 budeš písať arsize.

Nahlásit jako SPAM
IP: 188.112.79.–
m->29+6
Super člen
27. 8. 2011   #8
-
0
-

Ak bude tá "premenná" stále rovnaká tak je konštanta a môžeš ju inicializovať takto: 

class Trida {
  private:
    const static int CISLO = 5;

};

Ak to nie je konštanta, ale bude pre všetky objekty rovnaká a potrebuješ ju inicializovať tak takto:
Trida.h

class Trida {
  private:
    static int cislo;

};

Trida.cpp

int Trida::cislo = 5;

Ak je to nestatická premenná a potrebuješ ju inicializovať pri vytváraní objektu tak takto: 

class Trida {
  private:
    int cislo;

  public:
    Trida() : cislo(5) {};
};



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

Podobná vlákna

Zacatecnicka otazka — založil Pavel

C++ třída v DLL — založil yaqwsx

Asociační třída — založil Tomáš

Sablonova trida — založil Hertas

Moderátoři diskuze

 

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