error: ISO C++ forbids declaration (of ‘askPushed’ with no type)

Модератор: Модераторы разделов

KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

error: ISO C++ forbids declaration

Сообщение 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

Re: error: ISO C++ forbids declaration

Сообщение serzh-z »

Какую ошибку?
Спасибо сказали:
KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

Re: error: ISO C++ forbids declaration

Сообщение KnupK »

Которая указана в сабже,error: ISO C++ forbids declaration, of ‘askPushed’ with no type.Это пишет при компиляции.
So allein will ich nicht sein....
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: error: ISO C++ forbids declaration

Сообщение serzh-z »

Ладно, фиг с ним, с номером строки... Предположу, что это window.cpp:24
Спасибо сказали:
KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

Re: error: ISO C++ forbids declaration

Сообщение KnupK »

Компилятор также предположил :) Только шо с этим делать? Как правильно обьявить? :blush:
So allein will ich nicht sein....
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: error: ISO C++ forbids declaration

Сообщение serzh-z »

Что значит правильно? Определять нужно так как объявлено в классе Window, а в классе Window, как я вижу, int askPushed(int).
Спасибо сказали:
KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

Re: error: ISO C++ forbids declaration

Сообщение KnupK »

Дык,елы палы,коли все правильно обьявлено че он ругаеться? :huh:
So allein will ich nicht sein....
Спасибо сказали:
Аватара пользователя
alastor
Сообщения: 844
Статус: ARCH'еноид
ОС: Arch Linux current

Re: error: ISO C++ forbids declaration

Сообщение alastor »

А что, при описании метода класса возвращаемый тип уже не обязательно писать?

Код: Выделить всё

Window::askPushed(int iAnswer)

Код: Выделить всё

int Window::askPushed(int iAnswer)
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: error: ISO C++ forbids declaration

Сообщение serzh-z »

Короче, в указанной строке нужно написать "int Window::askPushed(int iAnswer)" вместо того, что есть.
Спасибо сказали:
KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

Re: error: ISO C++ forbids declaration

Сообщение KnupK »

Спасибо большое :)
So allein will ich nicht sein....
Спасибо сказали: