2013-09-06 1 views
0
class SuperBase 
{ 
    virtual void func() = 0; 
}; 

template <typename Child> 
class Base: public SuperBase 
{ 
    void func() 
    { 
    cout<< static_cast<Child*>(this)->m_i; 
    } 
}; 

class Derived1: Base<Derived1> 
{ 
    static const int m_i; 
} 

const int Derived1:m_i = 1; 


    int main() 
    { 
     SuperBase *iob; 
     iob = new Derived1(); 
     iob->func(); 
     return 0; 
    } 

-액세스 더 많은 파생 클래스 기능/호기심 반복 템플릿 패턴의 값 지금은 2, 유래와 같은 더 파생 클래스를 intoduce 싶어 내가 좋아하는 자료에 다른 값을 전달하려면

클래스 Derived2 : 자료 { // static const int m_i2; }

다음과 같은 작업을 수행 할 수 없습니다. 문제를 해결할 수있는 디자인 개조하면 되겠습니까?

답변

1

func 그들이 변수를 처리 할 derived_func라고 할 수 있지만, derived_func 모든 서브 클래스에서 같은 이름을 가지고 있으며, 개별적으로 (그들은 기본 클래스에 기본을 가질 수 있습니다)

프로그래밍 할 수있다
관련 문제