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
## 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
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
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.
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
#define POOL_H
#include "rstring.h"
class StringPool {
public:
// Létrehoz obj_num db RString obejktumot,
......@@ -10,10 +12,28 @@ class StringPool {
// Visszaad egy szabad RString objektumot ami
// legalább capacity kapacitással rendelkezik
// 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);
// Visszadja, hogy az str objektum szabad, azaz
// kiosztható/megszerezhető-e
bool acquireable(RString& str)
// Ezután a visszaadott str objektum újra kiosztható másnak
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
\ 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
#define PSTRING_H
#ifndef RSTRING_H
#define RSTRING_H
class RString {
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