一个类如何调用另一个类的函数?
如想让RootCommand中的函数fDoCommand调用DoCommand中的函数,用声明一个对象吗?下面是代码
DoCommand.h
#ifndef DOCOMMAND
#define DOCOMMAND
#include "VariableDeclare.h"
class DoCommand{
public :
void GoToBeginning(List *buffer);
void DeleteLine(List *buffer);
void GotoLine(List *buffer );
void Help();
void InsertLine(List *buffer);
void NextLine(List *buffer);
void PrecedingLine(List *buffer);
void ReadFile(List *buffer );
void WriteFile(List *buffer);
};
#endif
RootCommand.h
#ifndef ROOTCOMMAND
#define ROOTCOMMAND
#include "VariableDeclare.h"
class RootCommand{
public:
void CreatList(List *buffer);
void ListSize(List *buffer);
void OpenFile(int,char *[],List *buffer);
void GetCommand(char *command,List *buffer);
void InserList(Position p,ListEntry x,List *list);
void DeleteList(Position p,ListEntry *x,List *list);
void RetrievelList(Position p,ListEntry *x,List *list);
void ReplaceList(Position p,ListEntry x,List *list);
void fDoCommand(char command,List *buffer);
void DisplayCurrentLine(List *buffer);
private :
char command;
};
#endif
DoCommand.cpp
#include "RootCommand.h"
#include "DoCommand.h"
#include "VariableDeclare.h"
#include <iostream>
using namespace std;
void RootCommand::fDoCommand(char command,List *buffer)
{
switch(command){
case 'b':
DoCommand.GoToBeginning(buffer);
break;
case 'd':
DoCommand.DeleteLine(buffer);
break;
case 'g':
DoCommand.GotoLine(buffer);
break;
case '?':
case 'h':
DoCommand.Help();
break;
case 'i':
DoCommand.InsertLine(buffer);
break;
case 'n':
DoCommand.NextLine(buffer);
break;
case 'p':
DoCommand.PrecedingLine(buffer);
break;
case 'r':
DoCommand.ReadFile(buffer);
break;
case 'w':
DoCommand.WriteFile(buffer);
break;
}
}