выделение объекта типа абстрактного класса

я пытаюсь включить представление CCTable в моем приложении cocos2d-x. я следовал за исходным кодом из testcpp, и я все еще получаю эту ошибку и не уверен на 100%, почему

«выделение объекта абстрактного класса типа« GameList »»

вот мой исходный код

GameList.h

#ifndef __Squares__GameList__
#define __Squares__GameList__

#include "cocos2d.h"#include "cocos-ext.h"#include "GameListScene.h"#include "GameManager.h"
using namespace cocos2d;

class GameList : public CCLayer, public extension::CCTableViewDataSource, public extension::CCTableViewDelegate

{
public:
virtual bool init();
CREATE_FUNC(GameList);

~GameList(void);

CCLabelTTF* titleLabel;
CCLabelTTF* loginLabel;
CCLabelTTF* passwordLabel;

virtual void tableCellTouched(extension::CCTableView* table, extension::CCTableViewCell* cell);
virtual CCSize tableCellSizeForIndex(extension::CCTableView *table, unsigned int idx);
virtual unsigned int numberOfCellsInTableView(extension::CCTableView *table);
};

#endif

GameList.cpp

USING_NS_CC;
USING_NS_CC_EXT;

bool GameList::init()
{
if ( !CCLayer::init() )
{
return false;
}

CCSize size = CCDirector::sharedDirector()->getWinSize();

CCTableView* tableView = CCTableView::create(this, CCSizeMake(250, 60));
tableView->setDirection(kCCScrollViewDirectionHorizontal);
tableView->setPosition(ccp(20,size.height/2-30));
tableView->setDelegate(this);
this->addChild(tableView);
tableView->reloadData();

return true;
}

GameList::~GameList(void)
{

}

void GameList::tableCellTouched(CCTableView* table, CCTableViewCell* cell)
{
CCLOG("cell touched at index: %i", cell->getIdx());
}

CCSize GameList::tableCellSizeForIndex(CCTableView *table, unsigned int idx)
{
return CCSizeMake(60, 60);
}

unsigned int GameList::numberOfCellsInTableView(CCTableView *table)
{
return 20;
}

любая помощь будет оценена

Спасибо

2

Решение

Вы наследуете или говорите, используя CCtableViewDataSource & Классы CCTableViewDelegate, поэтому вы должны определить, что это все виртуальные методы
как следующее:

# CCTableViewDataSource

virtual CCSize cellSizeForTable(CCTableView *table);

virtual  CCTableViewCell* tableCellAtIndex(CCTableView *table, unsigned int idx);

virtual unsigned int numberOfCellsInTableView(CCTableView *table);

virtual bool hasFixedCellSize();

virtual CCSize cellSizeForIndex(CCTableView *table, unsigned int idx);

# CCTableViewDelegate

virtual void tableCellTouched(CCTableView* table,CCTableViewCell* cell);
7

Другие решения

Было бы хорошо увидеть, что в CCTableViewDataSource, CCTableViewDelegate классы.

Во всяком случае, я думаю, что ваша проблема в том, что GameList Класс не реализует все виртуальные абстрактные методы из вышеупомянутых классов. Просто проверьте, что вы пропустили.

1

Я обнаружил, что вам необходимо реализовать CCTableViewDelegate, а также CCScrollViewDelegate, поскольку CCTableViewDelegate наследуется от CCScrollViewDelegate.

0
По вопросам рекламы [email protected]