I když fnenksovo řešení nevypovídá ani tak o pochopení principu, jako spíš o metodě pokus - omyl :)
int pole[5][8];
int y = sizeof (pole) / sizeof (pole[0]); //5
int x = sizeof (pole[0]) / sizeof (pole[0][0]); //8
I když fnenksovo řešení nevypovídá ani tak o pochopení principu, jako spíš o metodě pokus - omyl :)
int pole[5][8];
int y = sizeof (pole) / sizeof (pole[0]); //5
int x = sizeof (pole[0]) / sizeof (pole[0][0]); //8
Odkázání na #define je sice hezká rada, ale pochopení principu, proč se je možné rozměry pole zjistit právě tak, jak na to fnenks nakonec správně přišel,
je rozhodně užitečnější. Navíc tohle se může hodit. Třeba v případě, kdy máš pole řetězců používaných v programu:
const char strArr[] = {
"Open",
"Close",
"Cancel"
};
Je to mnohem lepší způsob, než určit velikost pole přímo
const int ARR_SIZE = 3;
const char strArr[ARR_SIZE] = {
"Open",
"Close",
"Cancel"
};
protože při rozšíření pole o další řetězec je nutné změnit i hodnotu ARR_SIZE
V čem je lepší konstruktor? Ve všem :) Konstruktor slouží k počáteční inicializaci objektu. Pokud vytváříš objekt,
měl bys vždycky implementovat také vlastní konstruktor. Funkce Set() a pod. se používají na změnu hodnoty, ne k její inicializaci.
Inicializace probíhá při vytváření proměnné:
int a = 0; //je inicializce
int b;
b = 0; //není inicializace ale přiřazení
Macka kocka;
int vek = kocka.GetVek(); //vrací hodnotu Vek objektu kocka, které není přiřazena žádná hodnota
//konstruktor
Macka::Macka()
{
Vek = 0;
}
char *m_jmeno;
void Macka::SetJmeno(const char *jmeno)
{
delete [] m_jmeno;
m_jmeno = new char[strlen(jmeno) + 1];
strcpy(m_jmeno, jmeno);
}
Macka liza;
liza.SetJmeno("liza"); //CHYBA
Macka::Macka()
{
Vek = 0;
m_jmeno = NULL;
}
Macka kocka;
kocka.Init(); //??? Jaký to má smysl ???
K tomu zaokrouhlování, co třeba:
1. přičíst k výsledku 0.005 (zaokrouhlení)
2. vynásobit 100.0
3. přetyopovat na int (ořezání desetinné části)
4. jako double vydělit 100.0
jinak řečeno...
12.2568 + 0.005 = 12.2618
12.2618 * 100.0 = 1226.18
(int) = 1226
(doble)1226 / 100.0 = 12.26
(JAVU téměř neznám, tak snad to není úplně mimo)