C++中一个类的多个实现
Multiple implementations of a class in C++
我想知道是否可以在C++中完成以下操作。
我想做的是有一个类的组,它们都有相同的公共部分——也就是说,相同的公共变量和相同的方法集——然而,这组类中的不同类在私有部分会有不同的,它们可能有不同的私有变量——尽管方法集对于这样一组的所有类都是统一的,但这些方法的implementations可能会有所不同。
还有一个额外的比特——我想知道C++是否支持——我希望它是这样的,所有属于这个组中类的对象实际上都是相同的数据类型。也就是说,程序在类内部之外的任何部分都不会在一个类的对象和另一个类对象之间进行区分——前提是两个类都是同一组的一部分。
将该类组的一个类作为参数的函数可以将该类的任何类作为该参数。引用该类组的一个类的对象的变量可以引用该类的任何级的<em]对象。>
为什么我想知道这是否可以做到?因为如果可以的话,我可以使用这样一组类作为抽象层。
看起来您是在研究接口。好吧,并没有完全在C++中实现的。在C++中,您可以创建接口的模式模拟。
此外,阅读C#中整数类和抽象类之间的差异也很有用。
这看起来确实像是一项继承工作。您可以使用基类来定义基本数据类型(根据您的请求),同时为类的"组"定义公共接口(可能具有纯虚拟成员函数)。
为所有"公共部分"创建一个抽象基类,然后为"私有部分"创建子类。然后,可以使用声明为抽象基类类型的变量和方法参数简单地引用所有类的所有实例。OOP 101…
当然,有不止一种方法…
相关文章:
- 实现一个在集合上迭代的模板函数
- 如何为位集找到/实现一个好的哈希函数
- C++:实现一个全局常量,其值由用户给出
- C++:实现一个接收lambda作为输入的高阶函数
- 如何实现一个接受任何容器类型的函数
- 使用无符号int作为二进制来在c++中实现一个集
- 在int main()[c++]中实现一个递归函数
- 为什么T是未定义的?我正在尝试实现一个用于双链表的节点类,它不喜欢我使用友元运算符后的T
- 实现一个函数,该函数将字符串作为输入并返回一个新字符串,辅音字母不替换为 "!"
- 实现一个想要模拟 std::string 但在将其push_back向量时卡住的类
- 为 RocksDB 实现一个比较器
- 在使用表达模板的矩阵库中实现一个行类别的分配运算符
- 我需要实现一个指向成员函数重载的 c++ 函数指针
- 如何实现一个奇怪的循环
- 实现一个函数 StrSep(s, sub, part1, part2) 来接收字符串和子字符串 (sub) 并返回 :
- 我正在尝试为 Kruskal 算法实现一个C++程序,该程序需要我按权重对图形进行排序。如何按权重对结构进行排序
- 实现一个通用堆栈容器作为适配器类模板
- 如何用decltype实现一个不太通用的std::is_constructible
- 有可能实现一个与数组而不是单个对象一起工作的内存池吗
- QTextEdit 实现一个 onlclick 事件