Sirakov
Mitglied
Hallo zusammen,
bevor ich mit dem Problem anfange, muss ich sagen, dass ich erst jetzt mit C++ und tcl zu tun habe - habe also wirklich nicht viel Ahnung davon.
Ich habe eine Klasse gebastelt, eine der Methoden will ich dann über tcl aufrufen können. Leider bekomme ich folgende Fehlermeldung:
Hier ist mein C++ Quelltext:
Die Header-Datei sieht etwa so aus:
Das ganze brauche ich für das Netzwerksimulator, um eine IM-Anwendung zu simulieren. Als erstes will ich aber bloß einen Array erstellen und überprüfen, ob dieser Leer ist. Kann mir jemand vielleicht helfen? Ich weiss wirklich nicht, was ich falsch mache bzw. wie ich das Problem lösen kann
Danke im voraus!
bevor ich mit dem Problem anfange, muss ich sagen, dass ich erst jetzt mit C++ und tcl zu tun habe - habe also wirklich nicht viel Ahnung davon.
Ich habe eine Klasse gebastelt, eine der Methoden will ich dann über tcl aufrufen können. Leider bekomme ich folgende Fehlermeldung:
Code:
apps/im.cc: In member function »virtual int IMApp::command(int, const char* const*)«:
apps/im.cc:36: Fehler: keine passende Funktion für Aufruf von »IMApp::emptyList(const char* const&)«
apps/im.h:18: Anmerkung: Kandidaten sind: bool IMApp::emptyList(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const
apps/im.cc:31: Warnung: Variable »tcl« wird nicht verwendet
make: *** [apps/im.o] Fehler 1
Hier ist mein C++ Quelltext:
Code:
#include <iostream>
#include <ostream>
#include <string>
#include <vector>
#include <stdio.h>
#include "im.h"
using namespace std;
static class IMAppClass : public TclClass {
public:
IMAppClass() : TclClass("Agent/IMApp") {}
TclObject* create(int, const char*const*) {
return(new IMApp());
}
} class_imapp_class;
int IMApp::command(int argc, const char*const* argv) {
Tcl& tcl = Tcl::instance();
if (argc == 3) {
if (strcmp(argv[1], "empty") == 0) {
agent_ = (Agent*) TclObject::lookup(argv[2]);
IMApp::emptyList(argv[2]); // Methode emptyList wird aufgerufen.
return(TCL_OK);
}
}
return (Agent::command(argc, argv));
}
IMApp::IMApp() : Agent(PT_PING) {
}
bool IMApp::emptyList(vector<string> nodeVectorID) const {
if (nodeVectorID.size()==0) {
return true;
} else {
return false;
}
}
Die Header-Datei sieht etwa so aus:
Code:
#ifndef ns_im_h
#define ns_im_h
#include "agent.h"
class IMApp : public Agent {
public:
IMApp();
protected:
bool emptyList(vector<string> nodeVectorID) const;
virtual int command(int argc, const char*const* argv);
Agent *agent_;
};
#endif
Das ganze brauche ich für das Netzwerksimulator, um eine IM-Anwendung zu simulieren. Als erstes will ich aber bloß einen Array erstellen und überprüfen, ob dieser Leer ist. Kann mir jemand vielleicht helfen? Ich weiss wirklich nicht, was ich falsch mache bzw. wie ich das Problem lösen kann
Danke im voraus!