2012-03-10 609 views
3

所以,我读这本书:C++ GUI编程的Qt 4,第二版由茉莉布兰切特; Mark Summerfield,为了学习GUI编程。虽然下面thew书中的步骤来创建一个简单的电子表格应用程序,我得到一个“未定义的引用” 错误,当我尝试编译电子表格控件。Qt Creator中获得“未定义的引用”当调用定义的函数

所有的错误似乎是源于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);发送错误抱怨的第一个函数:/家用/轴/ QTSDK /代码/表格/ spreadsheet.cpp:-1:错误:未定义的引用`小区::细胞()”

这使HAPP无处不在,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

什么是您的'.pro'文件是什么样子? – vines 2012-03-10 02:38:05

+0

增加了'.pro'文件^^ – Axel 2012-03-10 02:44:41

回答

4

Cell类的定义是不存在的。它应该是cell.h至少,它应包括在spreadsheet.cpp或其代码可以被直接包括在spresheed.h.cpp这是不太可能的。无论如何,错误意味着缺少构造函数Cell

+0

嗯,我有'的#include“../细胞/ cell.h”'在我spreadsheet.cpp的包括部分,或者我应该包括另一个参考cell.h? – Axel 2012-03-10 03:11:01

+0

在项目中添加文件cell.h和cell.cpp。要做到这一点,请点击项目树根部的右键(左侧面板),然后选择'添加现有文件' – 2012-03-10 03:14:49

+0

哇!修复它! TY – Axel 2012-03-10 03:18:38