gpt4 book ai didi

c++ - 声明模板友元类的两种方法?

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:36 25 4
gpt4 key购买 nike

template<typename T> class FooBar {};

template<typename T> class Bar {
friend class FooBar<T>;
};

template<typename T> class Bar2 {
template friend class FooBar<T>;
};

类 Bar 和 Bar2 有什么区别?

最佳答案

根据我的编译器,你的第二个语法无效。如果您将它们更改为:

template<typename T> class FooBar {};

template<typename T> class Bar {
friend class FooBar<T>;
};

template<typename T> class Bar2 {
template<typename T2> friend class FooBar;
};

然后它会编译。不同之处在于 Bar<T> , 只有 FooBar<T>是 friend ;如果你有 Bar<int> , 只有 FooBar<int>是 friend ,不是FooBar<char>或任何其他类型,但 int .在 Bar2<T> , 任何类型的 FooBar是 friend 。

关于c++ - 声明模板友元类的两种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970529/

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