utilisation invalide de " il " à l'extérieur d'un non-membre statique de la fonction d'erreur?

Je suis en utilisant CCTouchTargetedDelegate avec une Classe de sous-classé par CCSprite.
lors de la définition de délégué méthodes je suis ne pas être en mesure d'utiliser "ce" à l'intérieur des fonctions.

comme répondu sur les questions déjà posées
Je ne pouvais pas le nom de la classe avec la fonction à l'aide de résolution de portée , parce qu'il me donna alors l'erreur de
"Hors-ligne de la définition de "ccTouchBegan" ne correspond pas à la déclaration de 'mygames::DragSprite'"

J'ai aussi essayé de déclarer la fonction .h fichier mais rien ne semble fonctionner.

Mon code est comme ci-dessous :-

.h Fichier

#pragma once
#include "cocos2d.h"




namespace mygames
{

    class DragSprite: public cocos2d::CCSprite, public cocos2d::CCTargetedTouchDelegate
    {
        public:
            DragSprite* createWithFile(const char *pszFileName);
            bool isTouchingOnSprite(cocos2d::CCPoint  touch);
            virtual bool init();
        bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
        static inline cocos2d::CCPoint ccpSub(const cocos2d::CCPoint v1, const cocos2d::CCPoint v2);
        private:
            bool isDrag;
            cocos2d::CCPoint whereTouch;
    };
}

.Fichier cpp

#include "DragSprite.h"


using namespace mygames;


bool DragSprite::init()
{
    if (!CCSprite::init()) {
        return false;
    }

    whereTouch = cocos2d::CCPointZero;
    isDrag = false;

    return true;
}
DragSprite* DragSprite::createWithFile(const char *pszFileName)
{
    DragSprite *pSprite = new DragSprite();
    if (pSprite&&pSprite->initWithFile(pszFileName))
    {
        cocos2d::CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(pSprite, 0, true);
        pSprite->autorelease();
        return pSprite;
    }
    CC_SAFE_DELETE(pSprite);
    return NULL;
}

bool DragSprite::isTouchingOnSprite(cocos2d::CCPoint  touch)
{

    if (this->boundingBox().containsPoint(touch)) {
        return true;
    }else
    {
        return false;
    }    

}
static inline cocos2d::CCPoint ccpSub(const cocos2d::CCPoint v1, const cocos2d::CCPoint v2)
{
    return ccp(v1.x-v2.x, v1.y-v2.y);

}
//CCTargetedTouchDelegate
bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{

    cocos2d::CCPoint touchPoint = pTouch->getLocation();

    if (this->isTouchingOnSprite(touchPoint)) {
        this->whereTouch = ccpSub(this->position, touchPoint);
        return true;
    }
    return false;
}

L'Erreur Capture D'Écran :-

utilisation invalide de

Ce qui me manque ici ?

JUSTE PAR CURIOSITÉ

COMME suggéré dans les réponses, Si j'utilise

bool DragSprite::ccTouchBegan

Donc, Serait-il encore appeler la delegete fonction ? ou tout simplement de la fonction à partir de mon DragSprite classe. Je veux dire, la fonction sera toujours remplacé ?
bien...
son la méthode déclarée dans CCTargetedTouchDelegete. et je suppose que c'est une fonction abstraite.

n'est-ce pas le message d'erreur assez clair? vous avez besoin DragSprite::
Il vous manque de l'étendue de classe dans le bool ccTouchBegan définition.
ok je comprends, mais comment dois-je utiliser le pointeur de classe. en fait, je suis le portage de code Objective-C. et il y a eu l'utilisation de "auto" ?
Il y a quelques endroits qui explicite this est nécessaire en C++, dans la plupart des autres endroits (y compris ici), elle est considérée comme un mauvais style.

OriginalL'auteur Pawan Joshi | 2014-05-05