友元类,该如何处理

友元类
 

// "handlefile.h"

#include "baseFileFunction.h"

class handleFile 
{
public:

class FileFunction;

handleFile();
~handleFile();
void retrievedOperatorFile();
void retrievedSourceFile();
void retrievedReservedFile();

void writeBackFile();

private:

FileFunction *operatorFile;

FileFunction *sourceFile;

FileFunction *reservedFile;






/*std::vector<std::string> *lineOfOperatorFile;
std::vector<std::string> *signalOperatorFile;

std::vector<std::string> *lineOfSourceFile;
std::vector<std::string> *signalSourceFile;

std::vector<std::string> *lineOfRetrievedFile;
std::vector<std::string> *signalRetrievedFle;*/








};

//"baseFileFunction.h"

#ifndef BASEFILE_H
#define  BASEFILE_H
#include <fstream>
#include <vector>
#include <string>
#include <utility>
//#include "handlefile.h"

class FileFunction
{

friend  class handleFile;
public:
 FileFunction();
 ~FileFunction();
 void retrievedFile();
 void splitLineWord();

 /*void writeBackLineFile();
 void writeBackSignalFile();*/
// virtual void writeBackFile();



private: 
 std::vector<std::string> *lineWord;
 std::vector<std::string> *signalWord;

 std::vector<int> *lineNumber;
 std::vector<int> *signalNumber;


 typedef std::pair<std::vector<int> *,std::vector<std::string> *> location;

 location *signalLocation;
 location *lineLocation;

};
#endif





 //handlefile.cpp

#include "handlefile.h"
#include "baseFileFunction.h"

handleFile::handleFile()
:operatorFile(NULL),
 sourceFile(NULL),
 reservedFile(NULL)
{
  operatorFile=new FileFunction;
  sourceFile=new FileFunction;
  reservedFile=new FileFunction;
}

handleFile::~handleFile()
{
delete operatorFile;
delete sourceFile;
delete reservedFile;
}

void handleFile::retrievedSourceFile()
{
sourceFile->retrievedFile();
}

void handleFile::retrievedOperatorFile()
{
operatorFile->retrievedFile();
}

void handleFile::retrievedReservedFile()
{
reservedFile->retrievedFile();
}

void handleFile::writeBackFile()
{
using namespace std;

ofstream outfile;

}


///baseFileFunction.cpp

#include "baseFileFunction.h"
#include <iostream>


FileFunction::FileFunction()
:lineWord(NULL),signalWord(NULL),
 lineLocation(NULL),signalLocation(NULL)
{
lineWord=new std::vector<std::string>;
signalWord=new std::vector<std::string>;
lineNumber=new std::vector<int>;
signalNumber=new std::vector<int>;

}

FileFunction::~FileFunction()
{
  delete lineWord;
  delete signalWord;