Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   Проблема с KDevelop (http://forum.oszone.net/showthread.php?t=45670)

[mzd] 19-02-2005 22:14 300014

Проблема с KDevelop
 
Помогите разобраться. Сделал все как описано здесь, но постоянно выскакивает ошибка на этапе компиляции
Код:

/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 300045

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

[mzd] 20-02-2005 23:25 300263

А теперь появляется такая ошибка
Код:

/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 300264

Ругается на SigCreate::SigCreate(QWidget *parent, const char *name) : SigCreateDlg(parent, name) и SigCreate::~SigCreate()

Envel 21-02-2005 17:03 300493

sigcreate.h в студию

[mzd] 21-02-2005 19:41 300534

Пожалуйста
Код:

#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 307418

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

[mzd] 18-03-2005 17:31 308006

Но ведь делал все как описано здесь. В чем проблема?

Zippy 18-03-2005 19:17 308042

Цитата:

В чем проблема?
Видимо проблема в авторах... Не могут нормально скопировать!


Время: 17:41.

Время: 17:41.
© OSzone.net 2001-