Модератор: Модераторы разделов
-
KnupK
- Сообщения: 65
- ОС: openSUSE 10.2 x86_64
Сообщение
KnupK »
Код: Выделить всё
main.cpp:
---------------
#include <QApplication>
#include "window.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window window;
window.show();
return app.exec();
}
---------------
window.h:
------------------
#ifndef WINDOW_H
#define WINDOW_H
#include <QtGui>
class QPushButton;
class QLineEdit;
class QTextEdit;
class Window : public QWidget
{
Q_OBJECT
public:
Window();
public slots:
int askPushed(int);
private:
QLineEdit *answerEdit;
QPushButton *askButton;
QLineEdit *askEdit;
};
#endif
---------------------------
window.cpp:
---------------------------
#include <QtGui>
#include "window.h"
#include <stdlib.h>
#include <time.h>
Window::Window()
{
QLineEdit *answerEdit = new QLineEdit;
QPushButton *askButton = new QPushButton(tr("Ask"));
QLineEdit *askEdit = new QLineEdit;
connect(askButton,SIGNAL(clicked()),this,SLOT(askPushed(int)));
QGridLayout *layout = new QGridLayout;
layout->addWidget(answerEdit);
layout->addWidget(askButton,1,0);
layout->addWidget(askEdit,1,1);
setLayout(layout);
setWindowTitle(tr("Right Answer"));
}
Window::askPushed(int iAnswer)
{
srand(time(NULL));
iAnswer = rand() % 2 + 1;
switch(iAnswer)
{
case 1:
answerEdit->setText("Yes");
break;
case 2:
answerEdit->setText("No");
break;
}
return 0;
}
---------------------------
Сабж
Подскажите,как исправить эту ошибку?
So allein will ich nicht sein....
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
Какую ошибку?
-
KnupK
- Сообщения: 65
- ОС: openSUSE 10.2 x86_64
Сообщение
KnupK »
Которая указана в сабже,error: ISO C++ forbids declaration, of ‘askPushed’ with no type.Это пишет при компиляции.
So allein will ich nicht sein....
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
Ладно, фиг с ним, с номером строки... Предположу, что это window.cpp:24
-
KnupK
- Сообщения: 65
- ОС: openSUSE 10.2 x86_64
Сообщение
KnupK »
Компилятор также предположил

Только шо с этим делать? Как правильно обьявить?

So allein will ich nicht sein....
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
Что значит правильно? Определять нужно так как объявлено в классе Window, а в классе Window, как я вижу, int askPushed(int).
-
KnupK
- Сообщения: 65
- ОС: openSUSE 10.2 x86_64
Сообщение
KnupK »
Дык,елы палы,коли все правильно обьявлено че он ругаеться?

So allein will ich nicht sein....
-
alastor
- Сообщения: 844
- Статус: ARCH'еноид
- ОС: Arch Linux current
Сообщение
alastor »
А что, при описании метода класса возвращаемый тип уже не обязательно писать?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
Короче, в указанной строке нужно написать "int Window::askPushed(int iAnswer)" вместо того, что есть.
-
KnupK
- Сообщения: 65
- ОС: openSUSE 10.2 x86_64
Сообщение
KnupK »
Спасибо большое

So allein will ich nicht sein....