gpt4 book ai didi

c++ - 在 “function name” 运算符后面键入参数

转载 作者:行者123 更新时间:2023-12-04 12:04:35 25 4
gpt4 key购买 nike

以下两个片段有什么区别?

  • <T>对于运算符 <<
  • template<typename T>
    class Stack {
    ...
    friend std::ostream& operator<< <T> (std::ostream&,
    Stack<T> const&);
    };
  • 没有 <T>
  • template<typename T>
    class Stack {
    ...
    friend std::ostream& operator<< (std::ostream&,
    Stack<T> const&);
    };

    最佳答案

    在#1 中,编译器会寻找一个名为 operator<< 的函数模板。使得 operator<< <T>具有给出的精确签名,以及类 Stack<T>只会与那个特定的专业成为 friend 。
    在#2 中,编译器将查找名为 operator<< 的非模板函数。它具有给出的精确签名。如果找到这样的函数,Stack<T>会和它交 friend 。如果找不到这样的函数,则声明该函数(但这是一个有问题的情况,因为没有办法对它进行一般定义)。

    关于c++ - 在 “function name” 运算符后面键入参数 <T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68988705/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com