编译错误,没有合适的构造函数

本文探讨了C++中类的前向声明方法及其应用场景,特别是在头文件中避免重复包含问题时的作用。同时,文章指出在需要实例化对象时必须包含完整的类定义而非仅进行前向声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在头文件中,使用


class xxx;


来声明某个类,这种方式经常被使用C++的我们使用,因为,看起来比包含一堆的头文件好看,而且头文件也可能发生重复包含的问题。这种方式适用于只产生该类的指针声明的地方,因为对编译器来说,是指针,就是个long。因此不需要关注到类的内部。


这种方式有时候会给我们造成一定的困扰,在编译CPP文件时,如果适用new xxx或者new xxx()这样的方式,编译器可能会告知无法找到合适的构造函数,即使你的类中已经有了相应的构造函数。


问题的原因恰恰是我们在适用到该类的头文件中适用了class xxx的声明,而不是包含头文件。new xxx的时候,编译器是需要全部的细节的。所以请包含头文件进来,即能解决该问题。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值