![]() |
| | #1 |
| Registered User Join Date: Apr 2002
Posts: 249
| Classes inheretance problem... I have 2 files, the first one has class name pDisk the second one has a class caled pFileTable : public pDisk Please tell me what is wrong with my code: here is the two classes from File name : pDiskFile.h Code:
#ifndef P_DISK_FILE_H
#define P_DISK_FILE_H
#include <sstream>
#include <vector>
#include <string>
#include <strstream>
#include <iostream>
#include <cstdlib>
//#include <stdlib>
#include <iomanip>
#include <cmath>
#include <math.h>
#include <time.h>
#include "utilities.h"
#include "fileTable.h"
//fstream pDISK;
class pDisk
{
public:
int fDisk(int number_Of_Blocks, int block_Size, string p_Disk_Name); // initialize disk
int fsCreate(string p_Disk_Name); // creats the disk after the initialization and formats disk file with filesystem
int fsOpen(string p_Disk_Name); // reads file system into into memory for manipulation and whatever...!
int synch(); // synch memory data to disk file
int addBlock(string file_Name, string buffer); // add block to file with content of buffer
int delBlock(string file_Name, int block_Number); // delete block if in file
int firstBlock(string file_Name); // return first block in file
int nextBlock(string file_Name, int block_Number);// get next block in file
int getBlock(string file_Name, int block_Number, string &buffer); // get buffer from block if in file
void printDISK();// print the information from the disk to the screen
string getPhysicalBlock( string file_Name, int block_Number, string & buffer);
// this will get the blockSize and store it into a buffer.
/* dealing with files in the disk
these was eliminated after the second phase as we made a lot of changes in the
file table and we don't have the time to finish them
to be done later...
*/
int findBlock(string file_Name, int block_Number); // Find the Block in the File_name from the Block_Number
int addFile( string file_Name, string fileBuffer); // add the name of the file to thr root and the file buffer to the disk
int delFile( string file_Name); // Dellet a file from the disk
int filePos(string p_Disk_Name); //it takes the file name and return it position in the vROOT vector.
private:
int numberOfBlocks; // number of blocks in pdisk
int blockSize; // number of bytes per block
int fatSize; // FAT size in blocks
string pDiskName; // name of pdisk for file system
int totalBlocks; // will have the number of the total blocks
string dataBLOCKS; // will have all the blocks buffer as one string
vector <int> vFAT; // memory storage for FAT information
//vector <Pair> vROOT; // memory storage for root information
vector <int> vROOT; // memory storage for root information
vector <string> vFileName;// the file Names in the root
//vector <Pair> vBUFFER; // memory storage:Buffer of the disk, and the block number
};// end of Class PDisk.
the second class is from file : fileTable.h Code:
#ifndef __FILE_TABLE_H
#define __FILE_TABLE_H
#include <sstream>
#include <vector>
#include <string>
#include <strstream>
#include <iostream>
#include <cstdlib>
//#include <stdlib>
#include <iomanip>
#include <cmath>
#include <math.h>
#include <time.h>
#include "pDiskFile.h"
#include "utilities.h"
string flat_File;
int headerBlock;
class FileTable: public pDisk // OOP //^^^^^^^^^^^line34^^^
{
public:
FileTable();
FileTable(string flat_File);
int buildFile( string input_File);
int addRecord( string record, string buffer);
string searchBlock( string block, int key, string value);
int searchAll( string value);
int Search( string key, string value, int feild);
int fieldQuery( string qur, int field);
void display( string find, int flag);
void Cat();
int lookUp();
string pack( vector<string> discr, vector<int> links);
void unpack(string buffer, vector<string>& discR, vector<int> links);
// from part III
int buildRoot( vector<string> key, vector<int> blocks); // build the Tree root.
int bTreeSearch( int node, string key);// Search the tree for a key.
int addBTree( int node, string & key, int& block); // add a new key to the tree
int EXTERInsert( int node, string key, int block, string & median, int & new_Block);
int INTERinsert( int node, string key, int block, string & median, int & newBlock);
int extDelete( int node, string key);
int buildKeys( string input_File); // build the keys of the tree
void metaFile( string block, int location);// the file
void buildNewRoot( string median, int leftChild, int rightChild);
int fixChild(int child, int sibling, string & median);
private:
pDisk pTableDISK; //************here is the problem**********//
fstream fileName;
};// Class FileTable
fileTable.h:34: syntax error before `;' fileTable.h:37: parse error before `{' fileTable.h:40: parse error before `)' fileTable.h:69: parse error before `private' fileTable.h:79: invalid use of undefined type `class FileTable' fileTable.h:36: forward declaration of `class FileTable' Please , I am about to give up: ![]() ![]() .... all the errors that I have in my code is "the second class can't make a variable from the first class. I don't know why.... Thanx a lot
__________________ C++ The best |
| NANO is offline | |
| | #2 |
| Guest
Posts: n/a
| the three things I did to make it compile: 1)Add #endif at the end of each header file 2) Add using namespace std to each file 3) change 'fstream' to either ifstream of ofstream (ifstream = input ofstream = output) EDIT: It still has two warnings when I do this fileTable.h Code:
#ifndef __FILE_TABLE_H
#define __FILE_TABLE_H
#include <sstream>
#include <vector>
#include <string>
#include <strstream>
#include <iostream>
#include <cstdlib>
//#include <stdlib>
#include <iomanip>
#include <cmath>
#include <math.h>
#include <time.h>
#include <fstream>
#include "pDiskFile.h"
using namespace std;
//#include "utilities.h"
string flat_File;
int headerBlock;
class FileTable: public pDisk // OOP //^^^^^^^^^^^line34^^^
{
public:
FileTable();
FileTable(string flat_File);
int buildFile( string input_File);
int addRecord( string record, string buffer);
string searchBlock( string block, int key, string value);
int searchAll( string value);
int Search( string key, string value, int feild);
int fieldQuery( string qur, int field);
void display( string find, int flag);
void Cat();
int lookUp();
string pack( vector<string> discr, vector<int> links);
void unpack(string buffer, vector<string>& discR, vector<int> links);
// from part III
int buildRoot( vector<string> key, vector<int> blocks); // build the Tree root.
int bTreeSearch( int node, string key);// Search the tree for a key.
int addBTree( int node, string & key, int& block); // add a new key to the tree
int EXTERInsert( int node, string key, int block, string & median, int & new_Block);
int INTERinsert( int node, string key, int block, string & median, int & newBlock);
int extDelete( int node, string key);
int buildKeys( string input_File); // build the keys of the tree
void metaFile( string block, int location);// the file
void buildNewRoot( string median, int leftChild, int rightChild);
int fixChild(int child, int sibling, string & median);
private:
pDisk pTableDISK; //************here is the problem**********//
ofstream fileName;
};// Class FileTable
#endif
Code: #ifndef P_DISK_FILE_H
#define P_DISK_FILE_H
#include <sstream>
#include <vector>
#include <string>
#include <strstream>
#include <iostream>
#include <cstdlib>
//#include <stdlib>
#include <iomanip>
#include <cmath>
#include <math.h>
#include <time.h>
//#include "utilities.h"
#include "fileTable.h"
using namespace std;
//fstream pDISK;
class pDisk
{
public:
int fDisk(int number_Of_Blocks, int block_Size, string p_Disk_Name); // initialize disk
int fsCreate(string p_Disk_Name); // creats the disk after the initialization and formats disk file with filesystem
int fsOpen(string p_Disk_Name); // reads file system into into memory for manipulation and whatever...!
int synch(); // synch memory data to disk file
int addBlock(string file_Name, string buffer); // add block to file with content of buffer
int delBlock(string file_Name, int block_Number); // delete block if in file
int firstBlock(string file_Name); // return first block in file
int nextBlock(string file_Name, int block_Number);// get next block in file
int getBlock(string file_Name, int block_Number, string &buffer); // get buffer from block if in file
void printDISK();// print the information from the disk to the screen
string getPhysicalBlock( string file_Name, int block_Number, string & buffer);
// this will get the blockSize and store it into a buffer.
/* dealing with files in the disk
these was eliminated after the second phase as we made a lot of changes in the
file table and we don't have the time to finish them
to be done later...
*/
int findBlock(string file_Name, int block_Number); // Find the Block in the File_name from the Block_Number
int addFile( string file_Name, string fileBuffer); // add the name of the file to thr root and the file buffer to the disk
int delFile( string file_Name); // Dellet a file from the disk
int filePos(string p_Disk_Name); //it takes the file name and return it position in the vROOT vector.
private:
int numberOfBlocks; // number of blocks in pdisk
int blockSize; // number of bytes per block
int fatSize; // FAT size in blocks
string pDiskName; // name of pdisk for file system
int totalBlocks; // will have the number of the total blocks
string dataBLOCKS; // will have all the blocks buffer as one string
vector <int> vFAT; // memory storage for FAT information
//vector <Pair> vROOT; // memory storage for root information
vector <int> vROOT; // memory storage for root information
vector <string> vFileName;// the file Names in the root
//vector <Pair> vBUFFER; // memory storage:Buffer of the disk, and the block number
};// end of Class PDisk.
#endif
|
|
| | #3 |
| Registered User Join Date: Apr 2002
Posts: 249
| ok... So many errors, I am about to give up here is all the files...
__________________ C++ The best |
| NANO is offline | |
| | #4 |
| Registered User Join Date: Apr 2002
Posts: 249
| second file second file
__________________ C++ The best |
| NANO is offline | |
| | #5 |
| Registered User Join Date: Apr 2002
Posts: 249
| third file third file
__________________ C++ The best |
| NANO is offline | |
| | #6 |
| Registered User Join Date: Apr 2002
Posts: 249
| last one utilites , which is very useful for everything you want...
__________________ C++ The best |
| NANO is offline | |
| | #7 |
| Guest
Posts: n/a
| I have it down to only a couple of errors, I went through and fixed probably 10 spelling errors so far. Put those files all in one .zip otherwise mods will delete it. I cannot find the following functions in any of your files (and I mean that, no prototypes, no implementations, nada) SearchRecord searchAll those above don't exist anywhere that I can see, and I suspect there are more functions that you are calling that don't exist. |
|
| | #8 |
| Registered User Join Date: Apr 2002
Posts: 249
| You know what .. You are very helpful Thanx a million, I am working on these files since last Monday. you push me not to give up , this is a very intesting file structure project . anyway I will post them as one zip file as you ask me to do . just a minute...
__________________ C++ The best |
| NANO is offline | |
| | #9 |
| Guest
Posts: n/a
| hey i won't be able to reply for a while because I am on babysitting duty and i have to play board games with my sis be back in under an hour |
|
| | #10 |
| Registered User Join Date: Apr 2002
Posts: 249
| Thanx anyway here is the file with the corrections one file .zip Thanx anyway
__________________ C++ The best |
| NANO is offline | |
| | #11 |
| Guest
Posts: n/a
| I am looking again at this project of yours. So far I have commented out functions that do not exist. Now I am looking into your 'LNK 2001' errors. Whenever you see an error code and you don't know what it means copy the code that comes after 'error' then go to msdn.microsoft.com and search for that error code. It will give you a fairly decent description of the error. |
|
| | #12 |
| Guest
Posts: n/a
| This version has only 2 errors, it is saying "class pDisk type redefinition" for each. I am honestly not sure what is wrong at this point. |
|
| | #13 |
| Registered User Join Date: Apr 2002
Posts: 249
| One more day One more day ... One more challenge... Thanx from all my heart man... I am out of the town now... Once I am back, I will chick the code... There should be a way that we can fix this.... Yesterday, my brian was over flow, and I needed to restart my system. I think I need to be away from the computer for one complate day , that was my father Advice.... ![]() It is a challenge and I accept it.
__________________ C++ The best |
| NANO is offline | |
![]() |
| Thread Tools | |
| Display Modes | |
|
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| problem with classes and pointers | Akkernight | C++ Programming | 18 | 02-21-2009 06:21 AM |
| Memory problem with Borland C 3.1 | AZ1699 | C Programming | 16 | 11-16-2007 11:22 AM |
| Having a problem with Classes | FoxTrot | C++ Programming | 10 | 09-06-2007 07:40 PM |
| Problem with destructors. | Hulag | C++ Programming | 7 | 06-11-2004 12:30 PM |
| problem w/ nested templatized classes | *ClownPimp* | C++ Programming | 8 | 10-19-2002 07:58 AM |