友元类,该如何处理
友元类
// "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;