2012-03-10 19 views
3

したがって、私はこの本を読んでいます。C++ GUI Programming with Qt 4、Second Edition Jasmin Blanchette; GUIプログラミングを学ぶためにSummerfieldをマークしてください。また、スプレッドシートアプリケーションを作成するための本の手順に従うと、スプレッドシートウィジェットをコンパイルしようとすると「未定義リファレンス」 エラーが発生します。定義済み関数を呼び出すときに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ラインCell *c = cell(row, column);がエラーを送信し

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

から文句最初の関数であります:/ホーム/ Axel/QtSDK /コード/スプレッドシート/ 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

'.pro'ファイルはどのように見えますか? – vines

+0

'.pro'ファイルを追加しました^^ – Axel

答えて

4

Cellクラスの定義は存在しません。少なくともcell.hでなければなりません。また、spreadsheet.cppに含めるか、コードをspresheed.hまたは.cppに直接含めることができます。とにかく、エラーは、Cellコンストラクタの欠落を意味します。

+0

私はspreadsheet.cppのインクルードセクションに' #include "../cell/cell.h"を持っていますか、cell.hの別のリファレンスを含めるべきですか? – Axel

+0

プロジェクトにcell.hとcell.cppファイルを追加します。これを行うには、プロジェクトツリーのルート(左パネル)の右ボタンをクリックし、 '既存ファイルを追加 'を選択してください。 –

+0

これを修正しました! TY – Axel

関連する問題