所以,我正在读这本书:Qt 4的C ++ GUI编程,Jasmin Blanchette的第二版; Mark Summerfield,以学习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/Code/Spreadsheet/spreadsheet.cpp:-1:错误:未定义引用`Cell :: Cell()'
在cell(row, column)
调用的任何地方都会发生这种情况。该函数本身在私有部分的spreadhseet头中定义为:Cell *cell(int row, int column) const;
很抱歉,如果它看起来很乱,我对C ++编程有点新意。
这是我的.pro文件
TEMPLATE = app
CONFIG += console
CONFIG += qt
SOURCES += main.cpp \
spreadsheet.cpp
HEADERS += \
spreadsheet.h
如果我遗失了某些内容,我会尽快添加。
谢谢, 阿克塞尔
答案 0 :(得分:4)
缺少Cell
类的定义。它至少应为cell.h
,并且应该包含在spreadsheet.cpp中,或者其代码可以直接包含在spresheed.h
或.cpp
中,这可能性较小。无论如何,错误意味着缺少Cell
构造函数。