开发者社区> 问答> 正文

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

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

展开
收起
a123456678 2016-03-05 14:54:04 1851 0
1 条回答
写回答
取消 提交回答
  • 不探究原理的话,你可以找到CSerial 类的头文件,在你定义CSerial m_serial的CPP文件中include。

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

    2019-07-17 18:53:31
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载