PDA

Показать полную графическую версию : Проблема с KDevelop


[mzd]
19-02-2005, 22:14
Помогите разобраться. Сделал все как описано здесь (http://women.kde.org/articles/tutorials/kdevelop3/ru/index.html), но постоянно выскакивает ошибка на этапе компиляции
/home/voland/progz/sigcreate/src/sigcreate.h:45: error: ISO C++ forbids declaration of `SigCreate' with no type
/home/voland/progz/sigcreate/src/sigcreate.h:47: error: destructor `SigCreate' must match class name `sigcreate'

Что за фигня?

Envel
20-02-2005, 01:08
Судя по сообщениям - 1-ое ISO запрещает декларацию "SegCreate" без имени типа, 2-ое - деструктор "SegCreate" не соответствует классу "segcreate".
Решение, на мой взгляд, очевидно: добавить название типа к 1 (например, void), изменить имя деструктора на правильное ("~segcreate()").

[mzd]
20-02-2005, 23:25
А теперь появляется такая ошибка
/home/voland/progz/sigcreate/src/sigcreate.cpp:30: error: syntax error before ` ::' token
/home/voland/progz/sigcreate/src/sigcreate.cpp:34: error: syntax error before ` ::' token

Код модуля

#include <qlabel.h>
#include <kmainwindow.h>
#include <klocale.h>
#include "sigcreate.h"

SigCreate::SigCreate(QWidget *parent, const char *name) : SigCreateDlg(parent, name)
{
}

SigCreate::~SigCreate()
{
}

#include "sigcreate.moc"

[mzd]
20-02-2005, 23:26
Ругается на SigCreate::SigCreate(QWidget *parent, const char *name) : SigCreateDlg(parent, name) и SigCreate::~SigCreate()

Envel
21-02-2005, 17:03
sigcreate.h в студию

[mzd]
21-02-2005, 19:41
Пожалуйста
#ifndef _SIGCREATE_H_
#define _SIGCREATE_H_

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

#include <kmainwindow.h>
#include "sigcreatedlg.h"
#include <qlineedit.h>
#include <qcombobox.h>
#include <qmultilineedit.h>

/**
* @short Application Main Window
* @author Alexander P Telenga <southcross@rambler.ru>
* @version 0.1
*/
class sigcreate : public SigCreateDlg
{
Q_OBJECT
public:
/** constructor */
void SigCreate(QWidget *parent=0, const char *name=0);
/** destructor */
~sigcreate();
};

#endif // _SIGCREATE_H_

Zippy
16-03-2005, 23:13
1. void SigCreate(QWidget *parent=0, const char *name=0); хоть убейте, но по-моему это не КОНСТРУКТОР!!!
2. Если писать имя класса sigcreate, то имя конструктора должно с ним совпадать (Си чувствителен к регистру, не забывайте)

[mzd]
18-03-2005, 17:31
Но ведь делал все как описано здесь (http://women.kde.org/articles/tutorials/kdevelop3/ru/index.html). В чем проблема?

Zippy
18-03-2005, 19:17
В чем проблема?
Видимо проблема в авторах... Не могут нормально скопировать!




© OSzone.net 2001-2012