C Board  

Go Back   C Board > General Programming Boards > C++ Programming

Reply
 
LinkBack Thread Tools Display Modes
Old 12-08-2002, 02:44 PM   #1
Registered User
 
Join Date: Apr 2002
Posts: 249
Classes inheretance problem...

hi
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
the error is

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   Reply With Quote
Old 12-08-2002, 03:27 PM   #2
Shadow12345
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
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"
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
note i blocked out utilities.h cuz i don't have that, also im developing under msvc++ 6.0
  Reply With Quote
Old 12-08-2002, 03:44 PM   #3
Registered User
 
Join Date: Apr 2002
Posts: 249
ok...

So many errors,

I am about to give up


here is all the files...
Attached Files
File Type: h filetable.h (22.3 KB, 36 views)
__________________
C++
The best
NANO is offline   Reply With Quote
Old 12-08-2002, 03:44 PM   #4
Registered User
 
Join Date: Apr 2002
Posts: 249
second file

second file
Attached Files
File Type: cpp main.cpp (5.9 KB, 35 views)
__________________
C++
The best
NANO is offline   Reply With Quote
Old 12-08-2002, 03:45 PM   #5
Registered User
 
Join Date: Apr 2002
Posts: 249
third file

third file
Attached Files
File Type: h pdiskfile.h (22.3 KB, 35 views)
__________________
C++
The best
NANO is offline   Reply With Quote
Old 12-08-2002, 03:46 PM   #6
Registered User
 
Join Date: Apr 2002
Posts: 249
last one

utilites , which is very useful for everything you want...
Attached Files
File Type: h utilities.h (7.1 KB, 32 views)
__________________
C++
The best
NANO is offline   Reply With Quote
Old 12-08-2002, 04:22 PM   #7
Shadow12345
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
print

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.
  Reply With Quote
Old 12-08-2002, 04:25 PM   #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   Reply With Quote
Old 12-08-2002, 04:31 PM   #9
Shadow12345
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
  Reply With Quote
Old 12-08-2002, 04:39 PM   #10
Registered User
 
Join Date: Apr 2002
Posts: 249
Thanx anyway

here is the file with the corrections
one file .zip

Thanx anyway
Attached Files
File Type: zip filestructure.zip (16.4 KB, 28 views)
__________________
C++
The best
NANO is offline   Reply With Quote
Old 12-08-2002, 06:09 PM   #11
Shadow12345
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.
  Reply With Quote
Old 12-08-2002, 06:19 PM   #12
Shadow12345
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.
Attached Files
File Type: zip pdisk.zip (17.3 KB, 30 views)
  Reply With Quote
Old 12-09-2002, 03:23 PM   #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   Reply With Quote
Reply

Thread Tools
Display Modes

Forum Jump

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


All times are GMT -6. The time now is 05:04 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0 RC2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22