首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板类2重载函数

模板类2重载函数
EN

Stack Overflow用户
提问于 2015-09-10 17:36:11
回答 1查看 128关注 0票数 4

我创建了一个对象的模板类,我希望运行第二个函数,如果是T==int。但我的问题是,在sec func()中,我想对对象运行第一个func。

我该怎么做?

代码语言:javascript
复制
 template<typename T> Object<T>::func(){

 } 

 template<> Object<int> Object<int>::func(){
        //somecode
        // I want here run the first func() on the object.
 }

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 18:07:17

将接口与实现分离是一个简单的问题:

代码语言:javascript
复制
template<typename T> Object<T>::func_impl(){
  // Do stuff here
}

template<typename T> Object<T>::func(){
  // all func does is call func_impl
  func_impl<T>();
} 

template<> Object<int> Object<int>::func(){
  // Maybe do some stuff...
  func_impl<int>(); // ... then call your implementation...
  // .. and maybe do some more stuff
}

澄清:您要做的是而不是重载。它被称为模板专门化。如果为给定类型提供了专门化,则无法实例化给定类型的通用模板。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32508330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档