簡體   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