2017-02-24 8 views
0

を持っている私は俳優のすべてのものから継承を削除した場合、私は... C++でC++の継承問題エラーC2084機能はすでに体

を次のコードを持って結構です。

私は問題を見つけようとしましたが、同様の問題が見つかりましたが、これは修正されませんでした。 私は数回もプロジェクトをきれいにして再構築しました。これは、それは私が作成した、本当に単純なクラスです

#include "Duke.h" 
#include "cocos2d.h" 



Duke::Duke() {} 

Duke::~Duke() 
{ 
} 
void Duke::update(float) 
{ 
} 

bool Duke::init() 
{ 
    return false; 
} 

どこかに私はちょうどカントは見つけることだけ愚かな間違い...

おそらくDuke.h

#pragma once 

#include "cocos2d.h" 
#include <string.h> 
#include "Actor.h" 
#include "HelloWorldScene.h" 
#include "AssetManager.h" 

class Duke : public Actor { 

private: 
    AssetManager* assets; 
public: 

    Duke() :Actor() {}; 
    ~Duke(); 
    void update(float) override; 
    virtual bool init() override; 

}; 

Duke.cppですしかし、私は関数についてのこのエラー(私は存在するとは思わない)を得て、今私は本当に無知です...

2>------ Build started: Project: MyCppGame, Configuration: Debug Win32 ------ 
2>Duke.cpp 
2>g:\cpp\projects\corgi\mycppgame\classes\duke.cpp(6): error C2084: function 'Duke::Duke(void)' already has a body 
2>g:\cpp\projects\corgi\mycppgame\classes\duke.h(15): note: see previous definition of '{ctor}' 
2>Done building project "MyCppGame.vcxproj" -- FAILED. 
========== Build: 1 succeeded, 1 failed, 4 up-to-date, 0 skipped ========== 

(必要であれば、ここで俳優のクラスdeclerationがある)

Actor.h

#pragma once 

#include "cocos2d.h" 
#include <string.h> 
USING_NS_CC; 
class Actor : public cocos2d::Node { 
private: 
    Sprite* spr; 
public: 
    Actor(std::string*); 

    Actor(); 

    ~Actor(); 

}; 

Actor.cpp

#include "Actor.h" 
#include "cocos2d.h" 
#include <string> 
USING_NS_CC; 
Actor::Actor(std::string* str) 
{ 
    spr = Sprite::createWithSpriteFrameName(*str); 
    this->addChild(spr); 
    this->setPosition(Vec2(100, 100)); 
    this->setScale(4); 
    Texture2D::TexParams texParams = { GL_NEAREST, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE }; 
    spr->getTexture()->setTexParameters(texParams); 
} 


Actor::Actor() 
{ 
} 

Actor::~Actor() 
{ 
} 

答えて

1

があなたのDukeコンストラクタを見ていただきありがとうございます。ヘッダーファイルとソースファイルの両方にが定義されています(関数本体で実装されています)。が定義されています。

ソースファイルから完全に削除してください。または、中括弧{}をヘッダーファイルから削除します。

+0

私は自分の.hファイルから自分の定義から関数を削除し、 ':actor()'部分を私の.cppの減速度に移動しました。今私は知っている、ありがとう! – Baruch