繁体   English   中英

如何专门化模板类成员函数?

[英]How can I specialize a template class member function?

考虑以下示例:

    template <class T, class U>
class Test {
public:
    void f(){std::cout<<"f() not specized"<<std::endl;}
    void g(){std::cout<<"g() not specized"<<std::endl;}
    void h(){std::cout<<"h() not specized"<<std::endl;}

    //void g<long, double>(){}
};

在这里,我对注释的代码有误。 我想达到预期结果的唯一方法是使全班同学都变得特别。 但是在下面提到的类中,我不能使用原始类的默认行为(例如f()和h()函数)。

template <>
class Test<long, double> {
public:
    void f(){std::cout<<"f() specized long, double"<<std::endl;}
};

那么有没有一种方法可以使原始类中的功能特别化?

当然,您可以使用以下定义进行操作

template<>
void Test<long, double>::f(){std::cout<<"f() specialized long, double"<<std::endl;}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM