Üdv! Szeretnék egy programban segítséget kérni. C++ban kell megírni, de én nem mélyedtem bele, csak a C programozásba. Elvileg class fügvénnyel kell megcsinálni, de nagyon nem tudom az hogy működik (? ). Előre köszi a segítségeket!
Nohát, akkor leírok egy kis szintaktikát, azután meg próbálkozz, és ha valami nem megy, akkor nézz vissza. Remélem senki nem fogja megírni helyetted.
class A
{}; //fontos a ;
class B: public A //így jelöljük a leszármazást
{
public:
int a, b, c;
};
Más nem kell.
Kiegésæítés:
A class az nem függvény! Ha elmélyedtél a C programozásban, akkor bizonyára ismered a struct-ot. A class egy az egyben egy struct, csak éppen az elemeihez alapértelmezetten senki más nem fér hozzá, csak a class-hoz tatozó függvények.
(Az előző válaszoló példájában a B osztály "belseje" azzal kezdődik, hogy "public:", ez azt jelenti, hogy a mögötte lévő struktúra elemekhez más is hozzáférhet, vagyis pont olyan, mintha class helyett struct szerepelni a neve előtt.)
Kicsit módosítanék a mintapéldán:
class A
{
public:
int a;
bool v;
};
class B: public A //így jelöljük a leszármazást
{
public:
int b;
};
class C: public A
{
public:
int c;
}
B ObjB;
C ObjC;
Itt most létre is hoztam két objektumot (változót), az egyik B tipusú, a másik C tipusú. ObjB-nek olyan elemei vannak, hogy a (int tipusú), v (bool) és b (int). ObjC-nek pedig szintén van a-ja meg v-je és van még egy c (int tipusú).
Nagyon fontos része a class-nak, hogy lehetnek neki függvényei is, de te most elvagy anélkül is, hogyha mindegyik osztály mindegyik elemét public-ká teszed (mint ahogy fent van). Az elemekhez ugyanúgy tudsz hozzáférni, mint C-ben a struktura elemeihez, szóval pl. ObjB.a = 3; ObjB.v = true; ObjB.b = 0;
Jelenleg itt jár a program: #ifndef teremh
#define teremh
#include <cstdlib>
#include <iostream>
using namespace std;
class eloadoterem
{
public:
char hangosithato;
char projektor;
char lepcsozetes;
};
class szamitogeplabor
{
public:
int szamitogepek;
char halozat;
char OPr;
};
class terem: public eloadoterem, public szamitogeplabor
{
public:
char hely;
int ulohelyek;
char sotetit;
};
Pont fordítva kell származtatni. a Terem az alaposztály, mert a másik kettő ennek a további adatokkal ellátott változata. Tehát először kell egy Terem:
class Terem
{
public:
char helye;
int ulohelyek;
bool sotetitheto;
};
// szerintem a 'helye' tipusának nem elég egy char, bár
// nincs a feladatkiírásban róla szó, hogy milyen
// jellegű adat. Vagy string-et akartál ott igaziból?
//
// A sotetitheto feltehetőleg leginkább bool kell legyen,
// azt át is írtam olyanra
class Eloadoterem: public Terem
{
public:
// ezek tuti mind leginkabb bool-ok!
bool hangosithato;
bool projektor;
bool lepcsozetes;
};
class Szamitogeplabor: public Terem
{
public:
int szamitogepek;
bool halozat; // ez inkább bool
string OPr; // char alatt te a sting-et ertetted?
};
De nekem az a gyanúm, hogy C-ben sem mélyedtél el igazán korábban...
A változók a kiírás szerint egy vector-ban (vagy több vector-ban, egy-egy vector az egyes teremtipusokra) kellenek. Ismered a vector-t? Annak olvass utána.
Az a probléma, hogy rég tanultam már a C-t és sokat felejtettem. Nem mondom hogy mindent 100%osan tudtam belőle, de azért ott nagyjából még tudom mi hogy volt.
Amúgy a char mint karakter akart lenni. De már annyira belekavarodtam, hogy még amit eddig tudtam abban se vagyok biztos. Olvastam egy csomó anyagot róla, néztem programokat is, de nemnagyon tudom kibogarászni. Reménytelen :/
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!