zoukankan      html  css  js  c++  java
  • C++模版全掌握(实例)

    下面列出了模版的常用情况:

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长//1. 模板类静态成员
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template <typename T> struct testClass 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    static int _data; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <> int testClass<char>::_data = 1
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <> int testClass<long>::_data = 2
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main( void ) 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    cout 
    << boolalpha << (1==testClass<char>::_data) << endl; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    cout 
    << boolalpha << (2==testClass<long>::_data) << endl; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //2. 模板类偏特化 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template <class I, class O> struct testClass 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass() 
    { cout << "I, O" << endl; } 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <class T> struct testClass<T*, T*> 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass() 
    { cout << "T*, T*" << endl; } 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <class T> struct testClass<const T*, T*> 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass() 
    { cout << "const T*, T*" << endl; } 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main( void ) 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <intchar> obj1; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <int*int*> obj2; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <const int*int*> obj3; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //3.类模版+函数模版
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template <class T> struct testClass 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    void swap( testClass<T>& ) { cout << "swap()" << endl; } 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <class T> inline void swap( testClass<T>& x, testClass<T>& y ) 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    x.swap( y ); 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main( void )
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <int> obj1; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <int> obj2; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    swap( obj1, obj2 ); 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //4. 类成员函数模板 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    struct testClass
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    template 
    <class T> void mfun( const T& t )
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长        cout 
    << t << endl; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    }
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    template 
    <class T> operator T() 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长        
    return T(); 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    }
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main( void ) 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass obj; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    obj.mfun( 
    1 ); 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    int i = obj; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    cout 
    << i << endl; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //5. 缺省模板参数推导 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template <class T> struct test 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    T a; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <class I, class O=test<I> > struct testClass 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    I b; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    O c; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //6. 非类型模板参数 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template <class T, int n> struct testClass 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    T _t; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass() : _t(n) 

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    }
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main( void ) 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <int,1> obj1; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    testClass
    <int,2> obj2; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
     
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //7. 空模板参数 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template <class T> struct testClass; 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <class T> bool operator==const testClass<T>&const testClass<T>& ) 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    return false
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <class T> struct testClass 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    friend 
    bool operator== <>const testClass&const testClass& ); 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //8. template template 类
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    struct Widget1 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T> 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    T foo()
    {} 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <template<class T>class X> 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    struct Widget2
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    cout
    << 3 << '\n';
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长


    //参考:http://www.cnblogs.com/dayouluo/archive/2005/05/14/155092.html

    特别注意:类,全局函数,类的成员函数都可以特化,但是只有类可以半特化,全局函数和类的成员函数不可以半特化。

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长//-------------------------------------------
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //1 类的特化和类成员函数的特化
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template<typename T>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    class Widget1
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    public:
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    void Fun1()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长        
    //generic implementation
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
        }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
    ;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    class Widget1<int>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    public:
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    void Fun1()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
    ;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <> 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void Widget1<char>::Fun1()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    //specialization
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  Widget1
    <char> w;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  w.Fun1();
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  Widget1
    <int> w2;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  w2.Fun1();
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //-------------------------------------------
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //2 全局函数的特化和重载
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template<typename T1, typename T2>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长T1 Fun2(T2)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //下面2个应该是属于重载
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template<typename T2>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    char Fun2(T2)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    char c;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    return c;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T1>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长T1 Fun2(
    char)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //全局函数的特化
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template<>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    char Fun2<char,int>(int)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    char c;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    return c;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //-------------------------------------------
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //3 全局函数不能半特化,以下编译失败
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template <typename T1,typename T2> //原型1
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void Test(T1,T2)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template 
    <typename T1>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void Test<T1,T1>(T1,T1)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T1, typename T2> //原型2
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    T1 Fun2(T2)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template<typename T2>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int Fun2<int,T2>(T2)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T1>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长T1 Fun2
    <T1,int>(int)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长T Fun2
    <T,T>(T)
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    ////-------------------------------------------
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    ////4 类可以特化和半特化,但是特的成员函数像全局函数一样,只能特化,不能半特化,

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template<typename T1, typename T2> struct Widget2
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  
    void Fun2()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长  
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长      
    //generic implementation
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
      }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
    ;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T2> 
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    struct Widget2<char,T2>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    void Fun2()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
    ;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长template
    <typename T2>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    struct widget2
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    void Fun2()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长        
    // class partial specialization
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
        }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
    ;
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //the class member funtion can not be partial specialization
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    //以下的成员函数半特化,编译失败
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    template<typename T2>
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    void Widget2<char, T2>::Fun2()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长    
    //class member function partial specialization
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    }

    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    int main()
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长
    {
    引用 C++模版全掌握(实例) - 迷茫 - 迷茫中成长}
  • 相关阅读:
    git stash回退
    基于git tag快速修复
    Go语言开发规范
    defer实现原理
    string数据结构
    关于const iota
    struct
    map数据结构底层详解
    go 函数进阶
    go 内存分配原理
  • 原文地址:https://www.cnblogs.com/bendanchenzhicheng/p/2175164.html
Copyright © 2011-2022 走看看