C ++の「ヘッドファイル」について質問があります。現在、スーパークラス「ノード」と3つのサブクラス「ファイル、ディレクトリ、ファイル」があります
class Node {
public:
//declare common interface here
void setName(string& name);
const string getName();
// const Protection& getProtection();
// void setProtection(const Protection&);
void setCDate(char* cDate);
char* getCDate();
long size();
void streamIn(istream&);
void streamOut(ostream&);
Node* getChild(int index);
virtual void adopt(Node* child);
virtual void orphan(Node* child);
virtual void accept(Visitor&) = 0;
static void destroy(Node*);
protected:
Node();
Node(const Node&);
virtual ~Node();
virtual bool isWritable() = 0;
private:
string name;
char* cDate;
};
class Directory : public Node {
public:
Directory();
Directory(string path);
//redeclare common interface here
void setName(string& name);
string getName();
void setCDate(char* cDate);
char* getCDate();
long size();
Node* getChild(int index);
virtual void adopt(Node* child); //add children
virtual void orphan(Node* child); //let the subnode be free
virtual void accept(Visitor&);
private:
list<Node*> _nodes; //hold its subnode
string& name;
char* cDate;
};
ファイルとリンクはクラス ディレクトリと同じです。クラス ビジターは次のとおりです。
class Visitor{
public:
virtual ~Visitor() {}
virtual void visitNode(Node*) = 0;
virtual void visitFile(File*) = 0;
virtual void visitDirectory(Directory*) = 0;
virtual void visitLink(Link*) = 0;
protected:
Visitor();
Visitor(const Visitor&);
};
それらはそれぞれ異なる head ファイルにあります。これらの head ファイルをインポートする方法を知りたいです