C++链接错误的常见原因分类

列出一些常见的链接错误吧


今天也是离了个大普,一直单独编译CPP没问题,编译project也没问题,编译solution 就有问题,

#pragma once
#include <string>
class MyClass
class Property  //in fact,Property is struct
using PropertyVector = QVector<Property>;
...

这样编译solution是会报链接出错的,不能将结构体申明为class

声明:我把class定义的类型称为类,struct定义的类型称为结构体。

C++中,如果要在一个类A的声明中用到另一个类B的指针或引用,需要包含类B的头文件,如果不想包含,可以使用向前声明。

但是,如果是结构体(struct定义的),好像不支持向前声明,C++中类和结构体差别不大,只是默认权限不同(class默认为私有,struct默认为公有),所以如果想使用向前声明,请使用class定义类型。

但是如果类A的声明中用到类B的对象,则必须包含类B的头文件,向前声明无效。
参考:
原文链接:https://blog.csdn.net/shenshen211/article/details/50997389

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值