Commit 3dbd73f6 by Karsa Zoltán István

readme stringpool

parent 463def78
...@@ -45,8 +45,10 @@ A `RString` osztály fenti publikus metódusai tovább nem bővíthetőek. term ...@@ -45,8 +45,10 @@ A `RString` osztály fenti publikus metódusai tovább nem bővíthetőek. term
## StringPool interfész ## StringPool interfész
A `pool.h`-ban az osztályhoz készített kommentezést követve implementáld a StringPool-t! Az osztály megvalósítása során törekedj az egységbezárásra, a hatékony megvalósításra, az osztály publikus interfésze nem bővíthető és nem is módosítható.
## Tiltott elemek ## Tiltott elemek
Az `RString` implementálásakor semmilyen STL tároló nem használható. A megoldásnál elemi dinamikus memóriakezelést kell alkalmazni. Ugyanakkor a `StringPool`-nál már használható valamilyen STL vektor vagy lista. Az `RString` implementálásakor semmilyen STL tároló nem használható. A megoldásnál elemi dinamikus memóriakezelést kell alkalmazni. Ugyanakkor a `StringPool`-nál már használható valamilyen STL vektor vagy lista.
\ No newline at end of file
Ha csak a header fájlokban dolgozol, akkor azt később visszaautasíthatjuk, a függvények megvalósítására a forrásfájlok valók!
\ No newline at end of file
#ifndef POOL_H #ifndef POOL_H
#define POOL_H #define POOL_H
#include "rstring.h"
class StringPool { class StringPool {
public: public:
// Létrehoz obj_num db RString obejktumot, // Létrehoz obj_num db RString obejktumot,
...@@ -10,10 +12,28 @@ class StringPool { ...@@ -10,10 +12,28 @@ class StringPool {
// Visszaad egy szabad RString objektumot ami // Visszaad egy szabad RString objektumot ami
// legalább capacity kapacitással rendelkezik // legalább capacity kapacitással rendelkezik
// Ha nincs ilyen a pool-ban, akkor létrehoz egyet // Ha nincs ilyen a pool-ban, akkor létrehoz egyet
// Visszavonásig az a string objektum nem oszható ki.
// "Foglaltnak" minősül
RString& acquire(size_t capacity); RString& acquire(size_t capacity);
// Visszadja, hogy az str objektum szabad, azaz
// kiosztható/megszerezhető-e
bool acquireable(RString& str)
// Ezután a visszaadott str objektum újra kiosztható másnak // Ezután a visszaadott str objektum újra kiosztható másnak
void release(RString& str); void release(RString& str);
// Hozzáfűzi str1 végére str2-t.
// - Ha str1 kapacitása elegendő
// akkor str1-ben végzi ezt el, és azt adja vissza
// - Ha nem, akkor egy új string-et készít, és abban
// fűzi össze őket, majd visszaadja azt
// Figyelj mit, hogyan kell nyílvántartani! Az str1 és
// str2 csak kiosztott erőforrások lehetnek, a visszatérési
// érték is szintén kiosztott.
// Ha a paraméterek nem lefoglalt erőforrások,
// akkor eldobja a neptun kódodat!
Rstring& append(RString& str1, const RString& str2);
}; };
#endif #endif
\ No newline at end of file
#include "pstring.h"
\ No newline at end of file
#include "rstring.h"
\ No newline at end of file
#ifndef PSTRING_H #ifndef RSTRING_H
#define PSTRING_H #define RSTRING_H
class RString { class RString {
public: public:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment