当两个类中出现不同的方法调用时,如绘制机制 一个处理BGRA 一个处理RGBA 颜色的时候,则可以采用下面类似的方法。
#pragma once
#include <stdio.h>
class Test
{
public:
virtual void test() = 0;
virtual void test2() = 0;
virtual void draw() = 0;
};
class TestT : public Test
{
public:
virtual void test3() = 0;
};
class TestTT : public Test
{
public:
virtual void test4() = 0;
};
template<typename T>
class TestImp : public T
{
public:
virtual void test() { printf("TestImp\n"); }
virtual void test2() { printf("TestImp\n"); }
protected:
int c;
};
class TestT_imp : public TestImp<TestT>
{
public:
virtual void test3() { printf("Test3\n"); }
virtual void draw() { printf("%d",c); }
};
class TestTT_imp : public TestImp<TestTT>
{
public:
virtual void test4() { printf("Test4\n"); }
virtual void draw() {}
};