Forum » Programiranje » [NALOGA][C++]Razredi in sintakska
[NALOGA][C++]Razredi in sintakska
balocom ::
#include <iostream> using namespace std; class Pravokotnik { public: void vnesisirina (int a); void vnesisirino (int b); void izracunobsega (void); void povrsina (void); private: int xsirine, yvisina; }pravokotnik; long Pravokotnik.izracunobsega(int y, int x) { return (long) 2*xsirina+2*yvisina; } long Pravokotnik.povrsina(int yvisina, int xsirina) { return (long) xsirina*yvisina; } void Pravokotnik.vnesisirino(int x) { private.xsirina = xsirina; } void Pravokotnik.vnesivisino(int y) { private.yvisina=y; } int main() { int vnos; cout << "Vnesi sirino pravokotnika" << endl; cin >> vnos; pravokotnik.vnossirine(vnos); cout << "Vnesi visino"; cin >> vnos; pravokotnik.vnesivisino(vnos); cout << "Obseg pravokotnika je " << pravokotnik.izracunobsega() << endl; cout << "Površina pravokotnika je " << pravokotnik.povrsina() << endl; system("Pause"); return 0; }
A lahko kdo popravi sintakso?
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
- spremenil: balocom ()
snow ::
Metode razreda morajo biti takole:
long Pravokotnik::izracunobsega(int y, int x)
long Pravokotnik::izracunobsega(int y, int x)
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenilo: snow ()
Quikee ::
napačno..
void Pravokotnik.vnesisirino(int x)
{
private.xsirina = xsirina;
}
void Pravokotnik.vnesivisino(int y)
{
private.yvisina=y;
}
pravilno..
void Pravokotnik::vnesisirino(int x)
{
xsirina = x;
}
void Pravokotnik::vnesivisino(int y)
{
yvisina=y;
}
....
private:
int xsirine, yvisina;
površnost!
....
long Pravokotnik.povrsina(int yvisina, int xsirina)
{
return (long) xsirina*yvisina;
}
Metoda ne sodi v razred!.. popravek:
long Pravokotnik:povrsina()
{
return (long) xsirina*yvisina;
}
long Pravokotnik.izracunobsega(int y, int x)
{
return (long) 2*xsirina+2*yvisina;
}
spet.. zakaj vhodna parametra x in y če ju v metodi ne uporabljaš? kvečemu..
long Pravokotnik::izracunobsega()
{
return (long) 2*xsirina+2*yvisina;
}
...
class Pravokotnik
{
public:
void vnesisirina (int a);
void vnesisirino (int b);
void izracunobsega (void);
void povrsina (void);
private:
int xsirine, yvisina;
}pravokotnik;
"} pravokotnik;", na koncu razreda ni potreben, mislim, pa da ni nič narobe če je.
+ nimaš definirano kaj metode vračajo v razredu!
+ spet površnost
Prav:
class Pravokotnik
{
public:
void vnesisirino (int x);
void vnesisirino (int y);
long izracunobsega ();
long povrsina ();
private:
int xsirina, yvisina;
};
void Pravokotnik.vnesisirino(int x)
{
private.xsirina = xsirina;
}
void Pravokotnik.vnesivisino(int y)
{
private.yvisina=y;
}
pravilno..
void Pravokotnik::vnesisirino(int x)
{
xsirina = x;
}
void Pravokotnik::vnesivisino(int y)
{
yvisina=y;
}
....
private:
int xsirine, yvisina;
površnost!
....
long Pravokotnik.povrsina(int yvisina, int xsirina)
{
return (long) xsirina*yvisina;
}
Metoda ne sodi v razred!.. popravek:
long Pravokotnik:povrsina()
{
return (long) xsirina*yvisina;
}
long Pravokotnik.izracunobsega(int y, int x)
{
return (long) 2*xsirina+2*yvisina;
}
spet.. zakaj vhodna parametra x in y če ju v metodi ne uporabljaš? kvečemu..
long Pravokotnik::izracunobsega()
{
return (long) 2*xsirina+2*yvisina;
}
...
class Pravokotnik
{
public:
void vnesisirina (int a);
void vnesisirino (int b);
void izracunobsega (void);
void povrsina (void);
private:
int xsirine, yvisina;
}pravokotnik;
"} pravokotnik;", na koncu razreda ni potreben, mislim, pa da ni nič narobe če je.
+ nimaš definirano kaj metode vračajo v razredu!
+ spet površnost
Prav:
class Pravokotnik
{
public:
void vnesisirino (int x);
void vnesisirino (int y);
long izracunobsega ();
long povrsina ();
private:
int xsirina, yvisina;
};
Zgodovina sprememb…
- spremenil: Quikee ()
balocom ::
Hvala
Naslednji problem(ček).
Pri vnosu in izpisu kjer piše xx. napaka javi : expected primary-expression before '.' token
Naslednji problem(ček).
int main() { int vnos; cout << "Vnesi sirino pravokotnika" << endl; cin >> vnos; Pravokotnik.vnossirine(vnos); //1. Napaka cout << "Vnesi visino"; cin >> vnos; Pravokotnik.vnesivisino(vnos); //2. Napaka cout << "Obseg pravokotnika je " << Pravokotnik.izracunobsega() << endl; //3. Napaka cout << "Površina pravokotnika je " << Pravokotnik.povrsina() << endl; //4. Napaka system("Pause"); return 0; }
Pri vnosu in izpisu kjer piše xx. napaka javi : expected primary-expression before '.' token
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
Quikee ::
Probaj...
Če še bo kakšna napaka ponovno prilepi celotno kodo, da vidim če je vse OK.
int main() { int vnos; Pravokotnik pravokotnik; cout << "Vnesi sirino pravokotnika" << endl; cin >> vnos; pravokotnik.vnossirine(vnos); cout << "Vnesi visino"; cin >> vnos; pravokotnik.vnesivisino(vnos); cout << "Obseg pravokotnika je " << pravokotnik.izracunobsega() << endl; cout << "Površina pravokotnika je " << pravokotnik.povrsina() << endl; system("Pause"); return 0; }
Če še bo kakšna napaka ponovno prilepi celotno kodo, da vidim če je vse OK.
balocom ::
#include<iostream> using namespace std; class Pravokotnik { public: void vnesisirino (int x); void vnesivisino (int y); long izracunobsega (); long povrsina (); private: int xsirina, yvisina; }; void Pravokotnik::vnesisirino(int x) { xsirina = x; } void Pravokotnik::vnesivisino(int y) { yvisina=y; } long Pravokotnik::povrsina() { return (long) xsirina*yvisina; } long Pravokotnik::izracunobsega() { return (long) 2*xsirina+2*yvisina; } int main() { int vnos; cout << "Vnesi sirino pravokotnika" << endl; cin >> vnos; Pravokotnik.vnossirine(vnos); cout << "Vnesi visino"; cin >> vnos; Pravokotnik.vnesivisino(vnos); cout << "Obseg pravokotnika je " << Pravokotnik.izracunobsega() << endl; cout << "Površina pravokotnika je " << Pravokotnik.povrsina() << endl; system("Pause"); return 0; }
Z tistim int main-om ni nič bolje, še vedno hoče Pravokotnik.vnossirine(vnos)/Pravokotnik.vnesivisino(vnos)/Pravokotnik.izracunobsega()/Pravokotnik.povrsina() .
V VS C++ Expres Editon javi: C2143: syntax error : missing ';' before '.' kjer imam dano Pravokotnik.vnossirine(vnos)/Pravokotnik.vnesivisino(vnos)/Pravokotnik.izracunobsega()/Pravokotnik.povrsina().
V Dev C++ pa javi isto kot prej
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
Zgodovina sprememb…
- spremenil: balocom ()
Gundolf ::
Pravokotnik z malo. Ker Pravokotnik je ime razreda (razred le določa nov tip spremenljivke, ki ga od deklaracije razreda naprej lahko uporabljaš v programu), medtem ko pravokotnik pa je ime spremenljivke tipa Pravokotnik. In v programu delaš le s spremenljivkami.
Jaz ti svetujem, da ne delaš stvari takole na pamet, kjer ne veš kaj ti kateri del programa sploh pomeni ampak si najprej res dobro pogledaš osnove. Predvsem ti očitno delajo probleme razredi. Recimo poglej si tale tutorial.
Jaz ti svetujem, da ne delaš stvari takole na pamet, kjer ne veš kaj ti kateri del programa sploh pomeni ampak si najprej res dobro pogledaš osnove. Predvsem ti očitno delajo probleme razredi. Recimo poglej si tale tutorial.
balocom ::
Pravokotnik z malo.
Kako bi bilo, če bi
delal v prvem poskusu? (zdej dela, koda v prvem in drugem poskusu sta enaki)....
Kako bi bilo, če bi
Pravokotnik pravokotnik;
delal v prvem poskusu? (zdej dela, koda v prvem in drugem poskusu sta enaki)....
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c++] konstruktorjiOddelek: Programiranje | 5239 (4568) | AndrejO |
» | c# formOddelek: Programiranje | 1878 (1392) | FuI2cY |
» | [C++] MetodeOddelek: Programiranje | 1517 (1349) | Klobasa |
» | programiranje COddelek: Programiranje | 2438 (2300) | bozjak |
» | Vmesnik v JaviOddelek: Programiranje | 2277 (2060) | Camel |