-4
Ohayou에 선언되어 있지 않습니다.'void beeGenerator :: initialize()'멤버 함수가 클래스
내가 묻기 전에 여러 가지 주제에서이 오류에 대해 읽었지만 직접 해결할 수는 없습니다. 그것에 대해 귀찮게해서 죄송합니다.
내 문제는 : 나는 두 개의 파일이
, 하나는 통화 당과 다른 .H 파일입니다.
내 CPP 파일은 다음과 같습니다
#ifndef __BEE_GENERATOR_H
#define __BEE_GENERATOR_H
#include "beeInclude.h"
class beeGenerator
{
class sPtr{
bool debug;
bool logResults;
double beeGenInterval;
double sleepTime;
int beeLength;
int myAddress;
int bID;
int packetCount;
virtual void initialize();
virtual void handleMessage();
virtual void finish();
virtual void launchNewBeeAgents();
int getBID();
void setBID(int id);
};
};
#endif
과 오류가
protoname/beeGenerator.cc:3:31: error: no ‘void beeGenerator::initialize()’ member function declared in class ‘beeGenerator’
void beeGenerator::initialize()
^
protoname/beeGenerator.cc:21:35: error: no ‘void beeGenerator::handleMessage()’ member function declared in class ‘beeGenerator’
void beeGenerator::handleMessage()
^
protoname/beeGenerator.cc:49:39: error: no ‘void beeGenerator::launchNewBeeAgents()’ member function declared in class ‘beeGenerator’
void beeGenerator::launchNewBeeAgents()
^
protoname/beeGenerator.cc:62:26: error: no ‘int beeGenerator::getBID()’ member function declared in class ‘beeGenerator’
int beeGenerator::getBID()
^
protoname/beeGenerator.cc:67:33: error: no ‘void beeGenerator::setBID(int)’ member function declared in class ‘beeGenerator’
void beeGenerator::setBID(int id)
^
protoname/beeGenerator.cc:72:27: error: no ‘void beeGenerator::finish()’ member function declared in class ‘beeGenerator’
void beeGenerator::finish()
내가 무엇을 할 수
같습니다#include "beeGenerator.h"
void beeGenerator::initialize()
{
myAddress = par("address");
sleepTime = (double) par("sleepTimeAtStart");
beeGenInterval = (double) par("iaTime");
beeLength = (int) par("beeLength");
bID = 0;
packetCount = 0;
debug = true;
logResults = par("logResults");
const char *statModulePath = (char*) par("statModulePath");
launchNewBees = new cMessage("launchNewBees");
scheduleAt(simTime() + sleepTime, launchNewBees);
}
void beeGenerator::handleMessage()
{
if(dynamic_cast<samplePacket *> (msg) != NULL)
{
samplePacket *dPacket = dynamic_cast<samplePacket *> (msg);
delete dPacket;
packetCount++;
if((packetCount % packetInterval) == 0)
{
packetCount = 1;
launchNewBeeAgents();
}
}
else if (msg == launchNewBees)
{
launchNewBeeAgents();
if(simTime() >= 30.0)
{
scheduleAt(simTime() + beeGenInterval, launchNewBees);
}
else
{
scheduleAt(simTime() + 1.0, launchNewBees);
}
}
}
void beeGenerator::launchNewBeeAgents()
{
char msgName[70];
sprintf(msgName,"Bee%d : Source%d", bID, myAddress);
beeAgent *bMsg = new beeAgent(msgName);
bMsg->setBID(bID++);
bMsg->setSourceAddress(myAddress);
bMsg->setKind(static_cast<int> (NETLAYER_BEE_AGENT));
bMsg->setSourceModule(BEE_GEN_MODULE);
bMsg->setLength(BYTE * beeLength);
send(bMsg,"toRouter");
}
int beeGenerator::getBID()
{
return bID;
}
void beeGenerator::setBID(int id)
{
bID = id;
}
void beeGenerator::finish()
{
ev << "*** Module: " << fullPath() << "***" << endl;
ev << "Stack allocated: " << stackSize() << " bytes";
ev << " (includes " << ev.extraStackForEnvir() << " bytes for environment)" << endl;
ev << "Stack actually used: " << stackUsage() << " bytes" << endl;
}
내 .H 파일은? :(
감사합니다!
"어떻게해야합니까?"컴파일러 오류를 읽습니다. 그리고 C++을 배우려면 좋은 [book] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)을 읽으십시오. 오, 그리고 __BE_GENERATOR_H는 합법적 인 이름이 아닙니다. –
이것은 대답 할만한 가치가 없습니다 ... 사소한 일입니다. 네, 컴파일러의 조언을 더 진지하게 받아 들여야합니다. 'beeGenerator' 클래스에'initialize()'멤버가 선언되어 있습니까? 아니면 더 중첩 된 범위에서 선언 된 멤버입니까? – JorenHeit
@BaummitAugen 내가 틀렸다면 정정 하겠지만, 매크로의/두 배 밑줄로 시작하는 것이 완벽하게 합법적이라고 정의합니까? 물론 포맷은 구현 정의 된 매크로를 위해 예약 되었기 때문에 권고 받지만 불법입니까? – JorenHeit