私は大学で課題を抱えています。基本的に、多くのtxtファイルから大量のデータを取り込みます。この質問では、データを 2 つのファイルと 2 つのクラスに切り詰めることができないため、データは読み取り可能な方法で構造化されています。データの例は次のとおりです。
教員.txt(PK、名前)
AT Advanced Technology
HESAS Health, Sport and Science
Department.txt (PK、名前、FK)
ET Engineering and Technology AT
BE Built Environment AT
CMS Computing and Mathematical Sciences AT
SAS Science and Sport HESAS
CS Care Sciences HESAS
PESD Professional Education and Service Delivery HESAS
アイデアは、データを使用してレポートを作成することです。プログラムは、リンクリスト、関係、および仮想関数を使用することを目的としています。したがって、コードには基本的にノードのリスト(FILOを使用しています)があります-
-文脈外の質問-
(講義で提供されたノードとリストコードの概念が得られたかどうかはわかりません-これは、ノードがオブジェクトのメモリアドレスを格納する場所を理解できないためです。誤解していない限り、ノードはそれぞれの子ですそのクラスからすべてを継承し、その上にそのものを追加するようにクラスを拡張しますか?その場合、すべての機能を継承する場合、最初に仮想関数を作成する必要があるのはなぜですか?-セキュリティ?)
-オブジェクトのポインターが内部に格納されています。今、私が実際に立ち往生しているのは、データをロードすることです-まあ、ivはそれをすべてリストにロードしましたが、外部キーを文字列としてロードしただけです.以前のファイル iv が読み込まれました (講義は簡単で、1 に FK がない簡単な 1-8 フローが得られました:)) そして、そのオブジェクトが見つかったら、そのメモリ アドレスを取得し、それを FK として使用します。この背後にある考え方は、基本的に std::cout << departmentObj->getForeignKey()->getIdentifier(); に移動できるということです。この時点で、私のテスト プロジェクト (テスト用に切り詰めたもの) からいくつかのコードを投稿します。
-- 申し訳ありませんが、ここのコード ブロックにはバグがあるため、ペースト ビンにする必要があります。
List.cpp http://pastebin.com/Le3fz5YF
List.h http://pastebin.com/5yJYDM8N
Node.cpp http://pastebin.com/Pgas8eju
Node.h http://pastebin.com/TZPrEA4Q
Fac.cpp http://pastebin.com/0EGeGhdq
dep.cpp http://pastebin.com/G2yk6jCg
Main.cpp http://pastebin.com/npiCC6wX
参照ローダー http://pastebin.com/n6UdsYmW
したがって、基本的には、リストを介して目的のオブジェクトのメモリアドレスを返すことになります。これを行うためにノードとリストクラスに正しくアクセスする方法がわからないことは明らかです。これを実現したいのは、ローダーのaddnode行を置き換えるために使用できる素敵なコード行を用意するだけです(参考のために投稿してください)。次のようになります。
departmentList->AddNode(new Department(holder[0], holder[1], facultyList->getPkObjAdd(holder[2])));
しかし、問題はそのオブジェクトのメモリアドレスを返す方法にあります。仮想関数である必要がある場合、学部や学科などの複数のオブジェクト タイプを返せるようにするにはどうすればよいですか?
私は多くの交霊会を行っているかどうかわかりませんが、誰かが私を助けてくれることを願っています. 御時間ありがとうございます!!- クイック編集、dep と fac.cpp を忘れた