木星儿 2015-02-11 06:36 采纳率: 0%
浏览 1737
已采纳

帮助下c++对象定义的问题

各位大神,我一直很纳闷,我在定义对象的时候一直用的是CSerial *m_serial;
这种格式,今天看到CSerial m_serial;这种格式也能用,但是我一用就会报错,是需要定义什么东西吗?谢谢…………

  • 写回答

9条回答 默认 最新

  • WitcherLu 2015-02-12 01:50
    关注

    不探究原理的话,你可以找到CSerial 类的头文件,在你定义CSerial m_serial的CPP文件中include。

    探究原理的话,楼上说的已经很清楚了,补充一下,你之所以之前使用CSerial *m_serial能够不报错,是因为此时你声明的是一个指针而不是对象(代码前面应该有class CSerial的前置声明),此时编译器不需要知道CSerial类的大小,只需要分配一个指针大小的空间即可,在链接的时候才会去找相关的方法和属性。如果你用CSerial m_serial形式声明,此时声明的是一个对象,由于你没有include这个类的头文件,所以编译器不知道要分配多少空间给这个对象,所以就报错喽。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集