C++ 如何用c++;

C++ 如何用c++;,c++,cocos2d-x,C++,Cocos2d X,我想定义一个自定义的非静态方法,如下所示: 这是.h文件 #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class HelloWorld : public cocos2d::Scene { private: Director *dir; SpriteFrameCache *spriteCache; Size visiableSize; Ve

我想定义一个自定义的非静态方法,如下所示:

这是
.h
文件

#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

class HelloWorld : public cocos2d::Scene
{

private:
    Director *dir;
    SpriteFrameCache *spriteCache;
    Size visiableSize;
    Vec2 visialbeOrigin;
    cocos2d::Sprite getMySpriteByName(const std::string &name);
    cocos2d::Sprite getBrickByName(const std::string &name);

public:
    static cocos2d::Scene* createScene();

    virtual bool init();

    // a selector callback
    void menuCloseCallback(cocos2d::Ref* pSender);

    // implement the "static create()" method manually
    CREATE_FUNC(HelloWorld);
};

#endif // __HELLOWORLD_SCENE_H__
下面是如何在
.cpp
文件中定义
getMySpriteByName()
getBrickByName

cocos2d::Sprite HelloWorld::getMySpriteByName(const std::string &name) {
    return Sprite::createWithSpriteFrameName(name);

}

cocos2d::Sprite HelloWorld::getBrickByName(const std::string &name) {
    auto brickSprite = this->getMySpriteByName(name);
    return brickSprite;
}
但是IDE或编译器不允许我这么做

我做错了什么

生成错误是:

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E0415   no suitable constructor exists to convert from "cocos2d::Sprite *" to "cocos2d::Sprite" onestep d:\cocos\onestep\Classes\HelloWorldScene.cpp    14  
Error (active)  E0330   "cocos2d::Sprite::Sprite(const cocos2d::Sprite &)" (declared at line 725 of "d:\cocos\onestep\cocos2d\cocos\2d\CCSprite.h") is inaccessible onestep d:\cocos\onestep\Classes\HelloWorldScene.cpp    19  
Error (active)  E0330   "cocos2d::Sprite::Sprite(const cocos2d::Sprite &)" (declared at line 725 of "d:\cocos\onestep\cocos2d\cocos\2d\CCSprite.h") is inaccessible onestep d:\cocos\onestep\Classes\HelloWorldScene.cpp    20  
Error (active)  E0020   identifier "visibleSize" is undefined   onestep d:\cocos\onestep\Classes\HelloWorldScene.cpp    51  

您错过了
*
(指针)

.h
中应

cocos2d::Sprite* getMySpriteByName(const std::string &name);
cocos2d::Sprite* getBrickByName(const std::string &name);
cocos2d::Sprite* HelloWorld::getMySpriteByName(const std::string &name) {
    return Sprite::createWithSpriteFrameName(name);

}

cocos2d::Sprite* HelloWorld::getBrickByName(const std::string &name) {
    auto brickSprite = this->getMySpriteByName(name);
    return brickSprite;
}
.cpp
中应

cocos2d::Sprite* getMySpriteByName(const std::string &name);
cocos2d::Sprite* getBrickByName(const std::string &name);
cocos2d::Sprite* HelloWorld::getMySpriteByName(const std::string &name) {
    return Sprite::createWithSpriteFrameName(name);

}

cocos2d::Sprite* HelloWorld::getBrickByName(const std::string &name) {
    auto brickSprite = this->getMySpriteByName(name);
    return brickSprite;
}

您错过了
*
(指针)

.h
中应

cocos2d::Sprite* getMySpriteByName(const std::string &name);
cocos2d::Sprite* getBrickByName(const std::string &name);
cocos2d::Sprite* HelloWorld::getMySpriteByName(const std::string &name) {
    return Sprite::createWithSpriteFrameName(name);

}

cocos2d::Sprite* HelloWorld::getBrickByName(const std::string &name) {
    auto brickSprite = this->getMySpriteByName(name);
    return brickSprite;
}
.cpp
中应

cocos2d::Sprite* getMySpriteByName(const std::string &name);
cocos2d::Sprite* getBrickByName(const std::string &name);
cocos2d::Sprite* HelloWorld::getMySpriteByName(const std::string &name) {
    return Sprite::createWithSpriteFrameName(name);

}

cocos2d::Sprite* HelloWorld::getBrickByName(const std::string &name) {
    auto brickSprite = this->getMySpriteByName(name);
    return brickSprite;
}

与您的问题或问题完全无关,但不要在程序中使用带双前导下划线的符号(例如
\uuuuuuu HELLOWORLD\uu SCENE\uuuuu
)。在所有范围内都保留这样的内容。例如,对于你的问题,如果你发布了关于构建错误的问题,你应该知道我们需要看到错误。@某个程序员,代码是由COCOS2D框架生成的,但不熟悉C++,也许你应该发布这个:与你的问题或问题完全无关。但不要在程序中使用带双前导下划线的符号(例如
\uuuuuuuhelloworld\uuu SCENE\uuuuuuuu
)。在所有范围内都保留这样的内容。例如,对于你的问题,如果你发布了一个关于构建错误的问题,你应该知道,我们需要看到错误。@代码程序员是由COCOS2D框架生成的,而不是熟悉C++。也许你应该发布这样一个问题:d我没有直接找到这个问题的原因是Visual Studio在编辑器中给出了一个误导性的信息,说
有些东西是不可访问的
@armnotstrong仅供参考:有了Cocos2d-x百人即时帮助其社区似乎是一个有前途的社区,感谢您提醒我,我没有直接找到这一点的原因是Visual Studio在编辑器中给出了一个误导性的信息,即“有些东西无法访问”
@armnotstrong仅供参考:有了Cocos2d-x,百人即时帮助社区似乎是一个很有前途的社区,感谢您提醒