Volevo sapere se questa implementazione del costruttore di copia è giusta:
TextLine::TextLine(const TextLine &textline)
: mTokens(textline.mTokens)
{
for(int i=0; i<mTokens.size(); ++i)
mTokens[i] = textline.mTokens[i];
}
Qui di seguito vi metto la classe di riferimento.
class TextToken {
public:
// TextToken::Type: elenco dei tipi token di interesse
enum Type {
Word, // parola
SpaceSequence, // sequenza di spazi
PunctuationMark // simbolo di punteggiatura
} ;
// TextToken::TextToken: costruttore parametrico
// permette di costruire un oggetto TextToken a partire dal tipo e dal
// valore del token
// Il valore di un token è la sequenza di caratteri che lo compongono
TextToken(Type type, const string &value)
: mTtype(type), mValue(value) {}
Type mTtype;
string mValue;
};
/*------------------------------------------------------------------------------
class TextLine
Rappresenta una linea di testo
La linea di testo è rappresentata mediante la sequenza di TextToken in essa
contenuti
-----------------------------------------------------------------------------*/
class TextLine {
public:
// TextLine::TextLine: costruttore parametrico
// Costruisce un oggetto TextLine a partire da una stringa
// L'implementazione del costruttore suddivide la stringa text nella
// sequenza di token che la compongono
TextLine(const string &text);
// costruttore di copia
TextLine(const TextLine &textline);
// distruttore
~TextLine();
// operatore di assegnazione
TextLine &operator=(const TextLine &textline);
// TextLine::getText
// restituisce il testo della linea composto a partire dalla giustapposizione dei token
// contentuti nella linea di testo
string getText();
// TextLine::getTokenCount
// restituisce il numero di token nella linea di testo
size_t getTokenCount() const;
// TextLine::getToken
// restituisce l'i-esimo token nella linea di testo
TextToken *getToken(size_t i) const;
private:
// mTokens contiene la sequenza di TextToken che compongono la linea di testo
vector<TextToken *> mTokens;
};
Ve lo chiedo perchè il compilatore nn mi da errori di sintassi ma vorrei sapere se effettivamente funziona, e se per favore mi potete indicare un modo per verificarlo. Grazie anticipatamente!!!!![]()
![]()