gpt4 book ai didi

c++ - C 派生自T,安全吗?

转载 作者:太空狗 更新时间:2023-10-29 21:13:48 24 4
gpt4 key购买 nike

如果我可以为某个类 C derived from T 指定一个基类 ( C<T> ),我有一个问题可以很好地解决。 .

我以前从来没有这样做过,所以我创建了一个简短的测试用例和 it works .

#include <iostream>
using namespace std;

class B{
public: int k=5;
};
template<class T> class C : public T{};

int main() {
C<B> c;
std::cout<<c.k<<std::endl;
return 0;
}

问题

它是在 C++ 语法的边缘吗?/是实现定义的吗?
在实际业务中使用安全吗?
有什么我应该特别关注的吗? (我希望没有。)
这种技术叫什么(如果有的话)?

最佳答案

它不是“在 C++ 的边缘”,但如果 T 则完全合法是一种可以派生的类型。我不知道这个“模式”的具体名称。

请注意,您可以从 std::remove_reference_t<T> 派生相反(为了使 C<B&> 之类的东西有效)或保留它 T为了使 C<B&> 的编译失败等等 - 这取决于。

关于c++ - C<T> 派生自T,安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42917922/

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