Aktív témák
-
Zulfaim
csendes tag
Szevasztok!
Bufferelten kezelt fájlt kellene írnom c++-ban OO-an.
Csináltam egy buffer osztályt, ahol tárolok egy pointert és a méretet.
Ennek kéne működnie:
buffer+=szoveg;
ahol mindketten string-et tároló tömbök.
a szoveget is úgy tárolom, hogy pointer+méret, de azt a main()-ben hozom létre.
Ezt operátor overloaddal kéne megoldani, de nem tudom hogy.
Tudna valaki segíteni? -
FehérHolló
veterán
Egyrészt fölösleges volt új topicot nyirni, a C++ topicban is elfért.
Ott azért nem válaszoltam, mert nem igazán értem a problémádat.
Operator += túltrhelése valami hasonló szintaktikájú függvénnyel megy:
char* Buffer::operator +=(const char* szoveg){
//ide jön a törzs
}
[Szerkesztve]Skynet is real. It's called Google.
-
Zulfaim
csendes tag
válasz FehérHolló #2 üzenetére
Írnom kéne egy buffer osztályt és megvalósítani az összes lehetséges műveletet operátor overloaddal(==,++,--,=,+=).
Épp azt nem tudom, hogy mit kéne a függvénytörzsbe írni.
Amúgy kösz a válaszodat. -
Zulfaim
csendes tag
Még konkrét osztályt nem írtam, mert nincs konkrét elképzelésem, hogy lehetne megcsinálni.
class BUFFER {
char* buffer;
int siz;
public:
BUFFER( char *b) { *a tömb feltöltése tetszőleges adattal* }
beolvas(char buffer[]);
~BUFFER(delete[] buffer);
};
BUFFER BUFFER:perator+=(char buffer, char szoveg)
ennek kéne működnie:
buffer+=szoveg;
[Szerkesztve] -
caddie
csendes tag
Nah nezzuk csak:
class buffer
{
public:
buffer() : buffer(0), size(0){}
buffer(char *b){ /* ... */ }
~buffer(){ delete[] buffer }
// member operator:
buffer& oprator+=( const char* value)
{
// releasing buffer
delete[] buffer;
// checking for size
if ( size = strlen(value) )
{
// creating space for new string
buffer = new char[size+1];
// strncpy the data from value to buffer, maximum number of
// char will be copied is ''size''
strncpy( buffer, value, size );
}
return *this;
}
private:
char* buffer;
int size;
}
int main()
{
buffer b;
b+=''asdfg'';
}
Ok latni kell, hogy a += opreatornal eloszor felszabaditjuk a buffert, meg akkor is ha a parameterul kapott string ures. Ez nem tul elegans megoldas, tobb sebbol is verzik a kod, de beadando szintu problemara asszem mukodokepes.
Nah ez kesz, tobbi menni fog?
ui: van itt egy kis button, az van rairva, hogy: ''kod''. Erdeme hasznalni.
[Szerkesztve]''C++ : Where friends have access to your private members.'' — Gavin Russell Baker.
-
Zulfaim
csendes tag
köszi
Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest