Bonjour
Je suis novice avec les pointeurs intelligents. Je les ai remarqués dans le Yes::Engine. Comme dans mon application, je voulais avoir un memory mamanger je me suis inspiré de celui de Yes::Engine. Donc j'ai débuté avec les CSmartPtr proposé dans ce projet.
Or quand j'alloue un pointeur d'une variable d'une classe, j'ai une erreur :
error C2064: term does not evaluate to a function taking 1 arguments
je suis Visual 2005.
Voici mon problème en code :
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | class CMyFirstClass
{
CMyFirstClass(int io);
// ce que l'on veut
}
 
typedef CSmartPtr<CMyFirstClass> CMyFirstClassPtr;
 
class CMySecondClass
{
private:
CMyFirstClassPtr m_Ptr;
}
 
dans le constructeur de CMySecondClass
CMySecondClass::CMySecondClass()
{
    m_Ptr (new CMyFirstClass(1));  // erreur
} | 
 Et Boost alors . Dans son article Laurent Gomila, préconiqe d'utiliser Boost. 
Mais j'ai la même erreur avec le typedef boost::shared_ptr<CMyFirstClass>	CMyFirstClassPtr;
Peut-on déclarer des variables comme pointeurs dans une classe externe sachant que ces variables pointent des classes dont les constructeurs ont des arguments ?
Ca je signale que si je fait :
	
	CMyFirstClassPtr m_Ptr (new CMyFirstClass(1));
 je n'ai pas d'erreur mais ce n'est pas la même adresse que la variable CMySecondClass::m_Ptr .
Pourriez-vous m'indiquer la bonne piste s'il vous plaît ?
						
					
Partager