Aktív témák
-
MaUser
addikt
Remélem tud valaki segíteni.
A gondom az volna, hogy megkaptuk a beadandó prog feladatokat, de sajna rendesen belenyúltam.
A feladat a következő:
Csinálni egy virtuális őst amiben csak a fv-eket deklaráljuk és kifejtjük. Ebből az ősből származtatunk egy dinamikus és egy statikus string osztályt. Ezzen pedig különböző fveket hajtunk végre. (titlecase, hány karkater stb....).
A gondom az, hogy az elejét nem tudom megvalósítani, a fv-ekkel már nem lenne gondom.
Ugyanis a tanár határozott kérése az, hogy az ősben csak a fv-ek legyenek és konkrét típus konstruktor(?) pedig ne.
Na valmi ilyen kéne:
//Ez csak egy kezdő váznak kellene, mert eddig megvan -oké nem egy nagy dolog eddig, de ha itt átlendítenétek a többivel sem lenne már gondom.//
#include <iostream.h>
#include <string.h>
#include <ctype.h>
class ancientStatik{
public:
virtual void lower(); //na ezt itt valahogy máshogy kéne:(
virtual void upper();
virtual void change();
virtual void outs();
};
void ancientStatik::lower(){
int i,g=strlen(s);
for (i=0;i<g;i++)
if (isupper(s[i]))
s[i]+=32;
}
void ancientStatik::upper(){
int i,g=strlen(s);
for (i=0;i<g;i++)
if (islower(s[i]))
s[i]-=32;
}
void ancientStatik::change(){
int i,g=strlen(s);
for (i=0;i<g;i++)
if (isupper(s[i]))
s[i]+=32;
else
s[i]-=32;
}
void ancientStatik::outs(){
int i,g=strlen(s);
for (i=0;i<g;i++)
cout<<s[i];
cout<<' ';
}
class dynamic:public ancientStatik{
private:
char *s;
public:
dynamic();
dynamic(const char &p);
dynamic(char *p);
char *getString(){return s;};
void insert(const char *p){s=strcpy(s,p);}
void outs();
void lower();
void upper();
void change();
};
dynamic::dynamic(){
s=new char;
s[0]=0;
}
dynamic::dynamic(char *p){
int len=strlen(p);
s=new char[len+1];
memcpy(s,p,len+1);
}
void main(){
dynamic t1(''ProHarDver''),t4(t1);
t4.change();
t4.outs();
}
Előre is köszönöm a segítséget, de csak négy óra múlva tudom megnézni. Nagyon örülnék ha valaki működőképessé pofozná a feltétlek szerint.''A file-cserélés öli meg a filmipart? Inkább a filmipar öli meg a file-cserélést. 2 hónapja nincsen semmi értelmes film, amit érdemes lenne letölteni...''
-
MaUser
addikt
Pontosan, az ősből kell származtatni. Csak azt nem értem, hogy deklaráljak ott fv-eket, ha változók a származtatott osztályokban vannak.:(
''A file-cserélés öli meg a filmipart? Inkább a filmipar öli meg a file-cserélést. 2 hónapja nincsen semmi értelmes film, amit érdemes lenne letölteni...''
-
khalox
őstag
Így van, az ős függvényei mind absztraktak, nincsenek definiálva, csak deklarálva.
Belőle KELL származtatni (hisz más értelme nincs is - csak tervezési mintákban), és a származtatott osztályok mondják meg a megvalósítást (ott definiálja).
Ha beszerez egy könyvet, gyorsan megvan. -
BaLinux
tag
Hali!
Absztrakt szülőosztály:
class abstractString{
(ide is jöhetne a char *s;)
public:
virtual void lower()=0;
virtual void upper()=0;
virtual void change()=0;
virtual void outs()=0;
};
Tagfüggvényeket ne definiálj ehhez!
ezek után:
class dynamicString: public abstractString{
private:
char *s;
public:
dynamic();
dynamic(const char &p);
dynamic(char *p);
char *getString(){return s;};
void insert(const char *p){s=strcpy(s,p);}
virtual void outs();
virtual void lower();
virtual void upper();
virtual void change();
};
A virtualt írd ki a felüldefiniált fgv-k előtt. Innentől kezdve ugyanaz, csak még van egy staticString osztályod szintén az abstractString-ből, amit máshogy implementálsz.
sok sikert! -
MaUser
addikt
A származtatott osztályban a deklarációnál (ami ugye nem a definícó:() méirt írsz újra virtual-t? Apropó az ősben a fv-eket miért kell nullázni? Azt látom, hogy anélkül nem megy, de miért?
''A file-cserélés öli meg a filmipart? Inkább a filmipar öli meg a file-cserélést. 2 hónapja nincsen semmi értelmes film, amit érdemes lenne letölteni...''
-
dearbear
tag
Hali!
Azért kell nullával egyenlővé tenni, mert ezzel egyértelműen jelzed, hogy absztrakt osztályról van szó. ( Ha jól emléxem az osztályhoz tartozó függvények pointerei mind nullok lennének, ami érvénytelen cím minden architektúrán, tehát példányosíthatatlanná teszi az osztályt. )
Bye!To develop or not to develop that is the question.
-
MaUser
addikt
Aha, köszi.
A nagy mű egyébként elkészült, a tanár elfogadta és happy end ill. zh.
Ha esetleg valakinek kell ilyesmi szívesen elküldöm.
Köszönöm mindenkinek a segítséget!''A file-cserélés öli meg a filmipart? Inkább a filmipar öli meg a file-cserélést. 2 hónapja nincsen semmi értelmes film, amit érdemes lenne letölteni...''
Aktív témák
- World of Warcraft Shadowlands Collectors edition EU EN
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül