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

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

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

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

05.01.2012, 00:23. Просмотров 558. Ответов 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     Не работает Первый пример из книжки
Посмотрите здесь:

Написать шаблон ptr_cast, который работает аналогично dynamic_cast (задача из книжки Страуструпа) - C++
Кто может написать шаблон ptr_cast, который работает аналогично dynamic_cast? Задача из Страуструпа, не могу это реализовать?

Пример из книги не работает. - C++
Пример из книги, тема Классы но смотрю что нет обращения к Task::swap(int i,int j) Думаю ошибка именно в Task::sort(int size). ...

Не работает пример из учебника - C++
#include &lt;string.h&gt; #include &lt;cstdio&gt; using namespace std; // начало объявления класса class CppStudio // имя класса { ...

Не работает пример из книги - C++
Я писал код из книжки и ничего не работает. #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; int main(){ ...

Не работает пример из книги Лафоре - C++
Доброго времени суток! Взялся решать задачу из книги Лафоре, глава 9, упр. 2. Опробовал уже готовое решение из самой книги- не работает. ...

Пример строк в стиле С не работает - C++
Один к одному переписал с книжки не фуричит .... #include &lt;iostream&gt; #include &lt;cstring&gt; int main(){ const char *cp1 = &quot;A...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,647
05.01.2012, 00:30     Не работает Первый пример из книжки #2
Цитата Сообщение от koka3000 Посмотреть сообщение
QLabel lbl(
Цитата Сообщение от koka3000 Посмотреть сообщение
QObject::connect(
вызывать надо функцию объекта класса
C++
1
lbl.connect
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
05.01.2012, 00:32     Не работает Первый пример из книжки #3
Сделай руками qmake && make clean && make

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
lbl.connect
Не надо так делать, это статический метод
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,647
05.01.2012, 00:44     Не работает Первый пример из книжки #4
Цитата Сообщение от NoMasters Посмотреть сообщение
Не надо так делать, это статический метод
я среагировал на это
Цитата Сообщение от koka3000 Посмотреть сообщение
undefined reference to
библиотеку сию не знаю
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
05.01.2012, 00:55     Не работает Первый пример из книжки #5
Цитата Сообщение от NoMasters Посмотреть сообщение
Сделай руками qmake && make clean && make
А qmake -project сначала не нужно?
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
05.01.2012, 01:02     Не работает Первый пример из книжки #6
Дык он же из каталога с проектом будет делать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 16:25     Не работает Первый пример из книжки
Еще ссылки по теме:

Не работает пример умножения и деления дробей - C++
Я переводил программу из паскаля, на паскале переменные в формате Реал а в си++ в Интежер. Так сделано потому что не смог преобразовать...

Инициализация переменных - некорректно работает пример из книги - C++
Взял задачку из книги Г.Шилда. Должно показывать 1 3 6 10 15. Но у меня выдает 1 2 3 4 5. Набрал всё точь в точь с книги, в чём проблема,...

Пример из книги Джесс Либерти не работает(указатели) - C++
Занимаюсь С++ по книге Джесс Либерти &quot;Освой самостоятельно С++ за 21 день&quot; В С++ новичок. На 8-ом дне, а вернее на 8-ой теме &quot;указатели&quot;...

первый gets() игнорируется, а второй работает - C++
Здравствуйте! Не могу понять почему первый gets() игнорируется, вернее в него записывается '\n'; #include&lt;iostream&gt; ...


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

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

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