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
    }
    //类型推断在起作用
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      
  • 相关阅读:
    能用HTML/CSS解决的问题,就不要用JS
    跨域
    从输入url到页面展示到底发生了什么
    hosts 文件
    了解Web及网络基础
    hybrid
    组件化和 React
    MVVM 和 VUE
    虚拟 DOM
    ES6模块化与常用功能
  • 原文地址:https://www.cnblogs.com/showyoucode/p/4992834.html
Copyright © 2011-2022 走看看