2017-11-21 8 views
-1

클래스 유형을 T에서 new_T로 변경하고 싶습니다. 가능합니까? 예를 들어 obj_pool템플릿 함수 매개 변수를 사용하여 템플릿 클래스 유형을 변경할 수 있습니까? C++

template<class T,int count> 
class obj_pool{ 
    public: 
    template<class new_T> 
    void Retypedef(); 
}; 

는 INT obj_pool<int> pool 위해 생성 한 사용자 pool.Retypedef<double>() 함수를 호출 할 때, 그 풀 풀 두배가된다. 당신이 질문을 쓸 때

+2

? 질문은 다소 불분명하다. – user463035818

+0

'T'는 단지 이름이다. 대신에'new_T','chicken' 또는'StackOverflow'를 사용할 수 있고, 같은 결과를 줄 것입니다. – ForceBru

답변

0

앞으로 제

는, 당신이 해결하려고하는 근본적인 문제에 대한 몇 가지 정보가 포함되어 있습니다. 그런 다음 사용자가 시도한 솔루션이 막 다른 길일 때 응답하는 사람들은 근본적인 문제를 해결할 수 있습니다.

또는 근본적인 문제에 대해 새로운 질문을하십시오 (질문 버튼을 통해 문의하십시오).

0

예제에서 Tnew_T은 두 가지 매개 변수입니다. 이 템플릿을 사용하여 다음과 같이 수 :

obj_pool<int,3> x; 
x.Retypedef<double>(); // <- passing different types for new_T 
x.Retypedef<float>(); // <- does not change the type of x 

x.Retypedef<int>();  // ..and of course you can use the same type for 
         // new_T as for T 

당신이 new_T 항상 다음은 간단하게 작성할 수 T과 동일 할 경우

template<class T,int count> 
class obj_pool{ 
    public: 
    void Retypedef(); // can use T 
}; 
변경할 않는 유형