Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
#1

Не работает Первый пример из книжки - C++

05.01.2012, 00:23. Просмотров 547. Ответов 6
Метки нет (Все метки)

IDE KDevelop. Пример, которые был при создании проекта, компилируется без ошибок.
Вот пример из книжки, который я пытаюсь скомпилировать:

Counter.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef _Counter_h_
#define _Counter_h_
 
#include <QObject>
 
// ======================================================================
class Counter : public QObject {
    Q_OBJECT
private:
    int m_nValue;
 
public:
    Counter();
 
public slots:
    void slotInc();
 
signals:
    void goodbye       (   );
    void counterChanged(int);
};
#endif  //_Counter_h_
Counter.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "Counter.h"
 
// ----------------------------------------------------------------------
Counter::Counter() : QObject()
                   , m_nValue(0)
{
}
 
// ----------------------------------------------------------------------
void Counter::slotInc()
{
    emit counterChanged(++m_nValue);
 
    if (m_nValue == 5) {
        emit goodbye();
    }
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <QtGui>
#include "Counter.h"
 
// ----------------------------------------------------------------------
int main (int argc, char** argv)
{
    QApplication app(argc, argv);
 
    QLabel      lbl("0");
    QPushButton cmd("ADD");
    Counter     counter;
 
    lbl.show();
    cmd.show();
 
    QObject::connect(&cmd, SIGNAL(clicked()), 
                     &counter, SLOT(slotInc())
                    );
 
    QObject::connect(&counter, SIGNAL(counterChanged(int)),
                     &lbl, SLOT(setNum(int))
                    );
 
    QObject::connect(&counter, SIGNAL(goodbye()), 
                     &app, SLOT(quit())
                    );
 
    return app.exec();
}
Выдает ошибку:
HTML5
1
2
3
4
5
/home/koka3000/projects/TestQt5/main.cpp:48: undefined reference to `vtable for Counter'
/home/koka3000/projects/TestQt5/main.cpp:48: undefined reference to `vtable for Counter'
/home/koka3000/projects/TestQt5/main.cpp:48: undefined reference to `vtable for Counter'
/home/koka3000/projects/TestQt5/main.cpp:48: undefined reference to `vtable for Counter'
/home/koka3000/projects/TestQt5/main.cpp:48: undefined reference to `vtable for Counter'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 00:23     Не работает Первый пример из книжки
Посмотрите здесь:

Пример из книги не работает. C++
C++ Пример строк в стиле С не работает
C++ первый gets() игнорируется, а второй работает
C++ можете привести пример программы со структурой данных, и объяснить как она работает
Нужен пример того, что работать вроде не должно, но работает C++
C++ Не работает пример умножения и деления дробей
Инициализация переменных - некорректно работает пример из книги C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6451 / 4917 / 451
Регистрация: 14.02.2011
Сообщений: 16,315
05.01.2012, 00:30     Не работает Первый пример из книжки #2
Цитата Сообщение от koka3000 Посмотреть сообщение
QLabel lbl(
Цитата Сообщение от koka3000 Посмотреть сообщение
QObject::connect(
вызывать надо функцию объекта класса
C++
1
lbl.connect
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,108
05.01.2012, 00:32     Не работает Первый пример из книжки #3
Сделай руками qmake && make clean && make

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
lbl.connect
Не надо так делать, это статический метод
ValeryS
Модератор
6451 / 4917 / 451
Регистрация: 14.02.2011
Сообщений: 16,315
05.01.2012, 00:44     Не работает Первый пример из книжки #4
Цитата Сообщение от NoMasters Посмотреть сообщение
Не надо так делать, это статический метод
я среагировал на это
Цитата Сообщение от koka3000 Посмотреть сообщение
undefined reference to
библиотеку сию не знаю
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
05.01.2012, 00:55     Не работает Первый пример из книжки #5
Цитата Сообщение от NoMasters Посмотреть сообщение
Сделай руками qmake && make clean && make
А qmake -project сначала не нужно?
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,108
05.01.2012, 01:02     Не работает Первый пример из книжки #6
Дык он же из каталога с проектом будет делать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 16:25     Не работает Первый пример из книжки
Еще ссылки по теме:

C++ Лафорье (13глава) - пример из книги, как он есть - не работает
C++ Не работает пример из учебника
Пример из книги Джесс Либерти не работает(указатели) C++
C++ Не работает пример из книги
C++ Написать шаблон ptr_cast, который работает аналогично dynamic_cast (задача из книжки Страуструпа)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
05.01.2012, 16:25  [ТС]     Не работает Первый пример из книжки #7
Спасибо всем, разобрался!
Yandex
Объявления
05.01.2012, 16:25     Не работает Первый пример из книжки
Ответ Создать тему
Опции темы

Текущее время: 04:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru