zoukankan      html  css  js  c++  java
  • 模板类和友元

    非模板友元
    template<typename T>
    class HasFriend
    {
    public:
        friend void report(HasFriend<T>&);
    };
    // the following code is necessary
    void report(HasFriend<int>& hf)
    {
       //details
    }
    
    void report(HasFriend<double>& hf)
    {
       //details
    }
    
    ======================================================================
    约束模板友元函数
    即友元的类型取决于类被实例化时的类型(TT)
    template<typename T>
    void report(T&);
    
    template <typename TT>
    class HasFriendT
    {
    public:
            friend void report<>(HasFriend<TT>&); //参数推断
       //or friend void report< HasFriend<TT> >(HasFriend<TT>&);
    }
    
    template<typename T>
    void report(T& hf)
    {
       //details
    }
    
    
    ======================================================================
    非约束模板函数
    //在类外照样用,常用这个
    template<typename T>
    class ManyFriend
    {
    public:
       template<typename C,typename D>
       friend void show(C&,D&);
    };
    template<typename C,typename D>
    void show(C& c,D& d)
    {
       //details
    }
    //类型推断在起作用
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      
  • 相关阅读:
    2019.9.25 初级数据结构——树状数组
    2019.9.29 陪审团
    2019.9.27 硬币
    0070-星星阵
    0069-简单的回文数问题
    0068-简单的求和问题
    0067-水仙花数
    0066-若干个数求和问题
    0065-数方块
    0064-简单的平方和
  • 原文地址:https://www.cnblogs.com/showyoucode/p/4992834.html
Copyright © 2011-2022 走看看