Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.01.2012, 00:23. Просмотров 583. Ответов 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'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 00:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не работает Первый пример из книжки (C++):

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

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

Не работает пример из Шилдта - C++
В книге Г. Шилдта &quot;C++ базовый курс&quot; третье издание на страницах 338-339 приведен следующий пример с перегрузкой оператора &quot;=&quot;: #include...

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

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

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

6
ValeryS
Модератор
6969 / 5306 / 522
Регистрация: 14.02.2011
Сообщений: 17,889
05.01.2012, 00:30 #2
Цитата Сообщение от koka3000 Посмотреть сообщение
QLabel lbl(
Цитата Сообщение от koka3000 Посмотреть сообщение
QObject::connect(
вызывать надо функцию объекта класса
C++
1
lbl.connect
0
NoMasters
Псевдослучайный
1906 / 1117 / 77
Регистрация: 13.09.2011
Сообщений: 3,169
05.01.2012, 00:32 #3
Сделай руками qmake && make clean && make

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
lbl.connect
Не надо так делать, это статический метод
1
ValeryS
Модератор
6969 / 5306 / 522
Регистрация: 14.02.2011
Сообщений: 17,889
05.01.2012, 00:44 #4
Цитата Сообщение от NoMasters Посмотреть сообщение
Не надо так делать, это статический метод
я среагировал на это
Цитата Сообщение от koka3000 Посмотреть сообщение
undefined reference to
библиотеку сию не знаю
0
easybudda
Модератор
Эксперт CЭксперт С++
10004 / 5927 / 998
Регистрация: 25.07.2009
Сообщений: 11,177
05.01.2012, 00:55 #5
Цитата Сообщение от NoMasters Посмотреть сообщение
Сделай руками qmake && make clean && make
А qmake -project сначала не нужно?
0
NoMasters
Псевдослучайный
1906 / 1117 / 77
Регистрация: 13.09.2011
Сообщений: 3,169
05.01.2012, 01:02 #6
Дык он же из каталога с проектом будет делать.
1
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
05.01.2012, 16:25  [ТС] #7
Спасибо всем, разобрался!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 16:25
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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