C++前置声明之模板类

本文介绍了在C++编程中遇到模板类使用前置声明时导致的编译问题及其解决方案。当在类B中使用类A的模板实例,如`std::vector<A>`,直接使用会编译失败。解决办法是在对应的CPP文件中实例化模板,例如在A.cpp中添加`template class std::vector<A>;`。这个技巧对于理解C++模板的编译过程和使用非常重要。
  • 突然想起来前置声明的一个小知识点,防走丢。使用场景是要在类B里面套用模板使用类A,A是前置声明,比如下面这样
//假如这个文件叫B.h
class A;
class B
{
public:
	std::vector<A> vec_A;
}
  • 直接这样是编译通过不了的,解决办法就是在CPP文件中实例化模板类
//假如这个在A.cpp中
template class std::vector<A>;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值