此处使用虚拟函数的位置
where to use virtual function here
我想使用继承和多态性创建一个假想的小型unix层次结构。
我有一个名为File的类,该类具有以下数据成员:
-string名称
类File假定具有以下操作:
-函数路径(返回文件的路径)
-函数ls(类似于ls命令)
-函数cd(类似于cd命令)
-函数cp(将给定文件复制到当前文件)
还有其他派生自File类的类
*类目录是一个特殊的文件,可以在其中保存多个文件。
*类TextFile是一个包含文本的文件。
运行在主功能中的示例如下:
Direcrory mydir(“mydir”);
TextFile myText(“mytext”, ....);
mydir.cp(myText);
mydir.ls();
伙计们,事情是这样的。我可以在没有继承和多态性的情况下实现这一点。但我希望它是一个面向对象的。所以我有两个问题
1-)我无法决定哪个功能应该是虚拟的
2-)以及如何在不存储额外数据成员的情况下实现路径功能
我考虑了两天。但我找不到这么好的解决办法。如果你帮我,我会很高兴的
提前谢谢。。
1-)我无法决定哪个功能应该是虚拟的。
如果您有Base* parent = new Child()
的结构,并且想要调用Child
的重写方法,那么这些函数应该是虚拟的。如果你有这个结构-声明析构函数是虚拟的。
2-)以及如何在不存储额外数据的情况下实现路径功能成员
由于路径基本上是一个字符串,您可以将路径存储在父类中。返回path
函数的字符串,并且不要在Child类中重写此函数。就是这样。字符串的几个字节有什么问题?
毫无疑问,只要想想"在现实生活中,它的行为像这样吗?"
相关文章:
- 这个返回元素位置的基于循环的函数有什么问题?
- 如何使此递归函数从给定的起始位置返回最小的整数?
- 如何在 LLVM 模块中调整函数位置
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 读取类的析构函数中的位置时发生访问冲突
- 函数,返回变量c++占用的内存位置的大小
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 创建一个函数以在给定位置将元素插入到列表中
- GDB 如何查找函数退出的位置
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- C++将可变数量的位置从给定数组传递到函数
- 非常量调用 const 成员函数失败,只读位置C++
- C++11 中的随机数:有没有一种简单的方法可以将生成器种子放在代码的一个位置,然后在不同的函数中使用它?
- C++ 友元函数在内存位置上有何不同?
- 决定放置函数实现的位置
- 为同一存储位置调用构造函数两次是否合法?
- 向量如何在特定位置调用复制构造函数
- 在我的 BST 实现中,我的 findNode 函数没有将父位置返回给其调用函数
- 更新函数之间精灵的位置
- 如何编写一个 void 函数,该函数将在数组中搜索值,并通过引用将该值的位置传递回 main 函数