Получение "неопределенной ссылки" в QT Creator при вызове определенной функции - PullRequest
3 голосов
/ 10 марта 2012

Итак, я читаю эту книгу: Программирование на C ++ с использованием Qt 4, второе издание от Jasmin Blanchette;Марк Саммерфилд, чтобы научиться программировать в GUI.И, следуя инструкциям этой книги по созданию простого приложения для работы с электронными таблицами, я получаю ошибку «неопределенная ссылка», когда пытаюсь скомпилировать виджет «Электронная таблица».

Кажется, что все ошибки происходят из функции Cell *Spreadsheet::cell(int row, int column):

Cell *Spreadsheet::cell(int row, int column) const
{
    return static_cast<Cell *>(item(row, column));
}

Это первая функция, которая жалуется из spreadsheet.cpp

QString Spreadsheet::formula(int row, int column) const {
    Cell *c = cell(row, column);
    if (c) {
        return c->formula();
    } else {
        return "";
    }
}

Где строка Cell *c = cell(row, column); Отправляет сообщение об ошибке: / home / axel / QtSDK / Код / Электронная таблица / электронная таблица.cpp: -1: ошибка: неопределенная ссылка на `Cell :: Cell () '

Это происходит везде, где вызывается cell(row, column).Сами по себе эта функция определена в заголовке таблицы в приватном разделе как: Cell *cell(int row, int column) const;

Извините, если вам кажется, что я немного запуталась, я новичок в программировании на C ++.

Вот мой файл .pro

TEMPLATE = app
CONFIG += console
CONFIG += qt

SOURCES += main.cpp \
           spreadsheet.cpp

HEADERS += \
           spreadsheet.h

Если я что-то упустил, я добавлю это, как только смогу.

Спасибо, Аксель

1 Ответ

4 голосов
/ 10 марта 2012

Определение класса Cell отсутствует.Оно должно быть как минимум cell.h и должно быть включено в spreadsheet.cpp, или его код может быть непосредственно включен в spresheed.h или .cpp, что менее вероятно.В любом случае ошибка означает отсутствие конструктора Cell.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...