2010-08-09 5 views
1

J'ai essayé de déclarer un pool de mémoire dans ma classe.Utilisation du pool de mémoire boost dans la classe

Mais le compilateur affiche une erreur de base comme manquant ')' avant ';'

ou erreur de syntaxe: « sizeof »

Il fonctionne bien si je la piscine variable locale, mais je veux vraiment faire vivre avec la classe.

Qu'est-ce qui ne va pas dans mon utilisation?

Voici la classe, la MAX_OBJ est un const


class CData 
{ 
public: 
CData(void); 
~CData(void); 
private: 
boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ); 
}; 
+0

Le compilateur montre aussi ** où ** l'erreur est. Il serait utile de le savoir aussi. – ereOn

Répondre

6

Je ne pense pas que quoi que ce soit à voir avec boost::pool.

Mais cette ligne:

boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ); 

devrait probablement être:

boost::pool m_Pool; 

Et votre constructeur devrait alors:

CData::CData() : 
    m_Pool(sizeof(DWORD) * MAX_OBJ) 
{ 
} 

Vous ne pouvez pas construire les membres de la classe déclaration . Vous pouvez juste dire: "Ma classe a un membre nommé m_Pool dont le type est boost::pool."

Vous spécifiez ensuite dans un ou plusieurs constructeur (s) comment ce membre est initialisé.

+0

Merci, quelle erreur de base j'ai faite ... :( – Judarkness

+1

@Judarkness: De rien, j'ai juste perdu 10 minutes pour trouver un ';' manquant dans mon propre code donc je suppose que nous faisons tous des erreurs basiques à un moment donné ;) – ereOn

Questions connexes