shared_ptr : “appel d'un objet d'un type de classe sans opérateur() ou la fonction de conversion de pointeur de fonction de type”
#include "boost\shared_ptr.hpp"
class A{
public:
A(){}
~A(){}
};
int main()
{
boost::shared_ptr<A> ptrA;
ptrA(new A);
}
Je voudrais savoir pourquoi ce code ne compile pas? Je veux savoir la différence si je viens d'utiliser
boost::shared_ptr<A> ptrA(new A);?
- Ce n'est pas vraiment du tout spécifique à
shared_ptr
maintenant qu'il est.
Vous devez vous connecter pour publier un commentaire.
Appels de conversion constructeur qui convertit
A*
dans leshared_ptr
. C'est un défaut de construction du ptr.Appels
operator()
. Ce est utilisé pour beaucoup de raisons, l'une étant de rendre les objets émuler les fonctions, j'.e foncteurs. Mais ce n'est pas utilisée avecshared_ptr
.Le constructeur existe,
operator()
ne marche pas.ptrA = shared_ptr<A>(new A);
ouptrA.reset(new A);