这里使用虚函数的地方

时间:2015-12-20 13:31:07

标签: c++ unix inheritance polymorphism

我想使用继承和多态来创建一个虚构的小unix层次结构。

我有一个名为File的,该类具有以下数据成员:
- 字符串名称

类File假设有以下操作:
-function 路径(返回文件的路径)
-function ls (类似于ls命令)
-function cd (类似于cd命令)
-function cp (将给定文件复制到当前文件)

还有其他类派生自File类 *类目录是一个特殊的文件,可以在其中保存许多文件 * TextFile类是包含文本的文件。

在main函数中运行的示例可以如下:

Direcrory mydir(“mydir”);
TextFile myText(“mytext”, ....);
mydir.cp(myText);
mydir.ls();

这是伙计们。我可以在没有继承和多态的情况下实现它。但我希望它是面向对象的。所以我有两个问题? 1-)我无法确定哪个功能应该是虚拟的。
2-)如何在不存储额外数据成员的情况下实现路径功能

我正在考虑它两天。但我找不到这么好的解决方案。如果你帮助我,我会很高兴 提前谢谢..

1 个答案:

答案 0 :(得分:0)

  

1-)我无法决定哪个功能应该是虚拟的。

如果您具有Base* parent = new Child()的结构并且想要调用Child的覆盖方法,那么这些函数应该是虚拟的。  如果你有这个结构 - 声明析构函数是虚拟的。

  

2-)如何在不存储额外数据的情况下实现路径功能   构件

由于路径基本上是一个字符串,因此您只需将路径存储在父类中即可。从path函数返回字符串,不要在子类中重写此函数。而已。字符串的少量字节有什么问题?

有任何疑问,只要想一想“在现实生活中,它的行为是否像它一样?”