背景
在阅读源码时发现了下面的一种写法,这种写法确实
是第一次接触,一时间不理解这种写法的含义以及设计理念,于是便查找资料学习相关知识。
template<class T>
class Base : public T
{
......
};
最终确定这是c++实现mixin的方式,也就是Template Parameters as Base Classes,那么为什么会诞生这种较复杂的语法设计呢?其存在的意义是什么?
问题
有如下的BasePrint类用于提供打印功能:
class BasePrint
{
public :
virtual void print();
};
实际应用中我们对这个基类进行继承扩展,实现定制不同版本的打印功能,然后自己的实际类中继承对应的打印类,选用自己需要的打印版本。
class DerivePrint1 : public BasePrint
{
public :
// 这里为了方便就随便输出了,实际应用中比如这个print可以封装为带色彩输出或者格式化输出
virtual void myprint() {
cout<<"Hello World 1!"<<endl;
}
virtual void print() {
myprint();
}
};
class myClass : public DerivePrint1{
};
int main

本文探讨了C++中mixin设计模式的应用,通过TemplateParametersasBaseClasses实现,解决了多重继承问题,提供了安全的功能组合方式。

507

被折叠的 条评论
为什么被折叠?



