PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++/KDE: Probleme beim Zugriffen auf Funktionen einer Klasse



delmonico
15-01-2005, 12:25
Hi,

ich arbeite mich grad in KDE-Entwicklung ein und frische dabei meine doch sehr vestaubten C++-Grundlagenkentnisse auf. Irgendwie habe ich aber ein Problem mit meiner Klasse... Ich will eine member-Funktion über this.load() aufrufen, bekomme aber beim compilen "request for member 'load' in 'this', which is of non-class type 'kingle* const'". Da is sicher en ganz blöder fehler drin aber ich finds einfach nicht :/
Achja und noch ne Frage am rande: Wieso kommt bei KDE-Anwendungen keinerlei ausgabe über cout am stdout an? Bin jetz für debug-ausgabe auf KMessageBoxen umgestiegen, aber würd mich schon mal interessieren...

MfG, del

#include "kingle.h"
#include "button.h"

#include <kmainwindow.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <qfile.h>
#include <qstring.h>
#include <iostream>

kingle::kingle()
: KMainWindow( 0, "kingle" )
{
QString filename = "test.txt";
this.load(filename);
}

kingle::~kingle()
{
}

/** Loads a file and initalizes the buttons. */
void kingle::load(QString Filename)
{
QFile File(Filename);
File.open(IO_ReadOnly);
QString line;
File.readLine(line,9999999);
KMessageBox::information(0,line);
}


#ifndef _KINGLE_H_
#define _KINGLE_H_

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <kmainwindow.h>
//#include <qstring.h>

/**
* @short Application Main Window
* @author Christoph Neuroth <delmonico@gmx.net>
* @version 0.1
*/
class kingle : public KMainWindow
{
Q_OBJECT
public:
kingle();
virtual ~kingle();
void load(QString Filename);
void save(QString Filename);
void play(QString Filename);
};

#endif // _KINGLE_H_

Gartenzwerg
15-01-2005, 13:36
hi,
probier mal


this->load(filename);

oder lass den Zeiger this einfach weg:


load(filename);

Gartenzwerg

delmonico
15-01-2005, 15:04
Danke, so gehts. Irgendwie war ich mir sicher, beides getestet zu haben? Komisch ;)

anda_skoa
17-01-2005, 00:43
Am besten du lässt es weg, macht die Sache nur schwerer lesbar, weil es einfach nicht üblich ist.

Ciao,
_