VS 2013/08/12 上出现的ERROR LNK 2019 1120 无法解析外部符号的问题

本文详细探讨了在C++编程中遇到的类间数据访问错误及继承问题,包括解决缺少lib文件的方法、类函数声明与实现分离的解决策略,以及在类模板中使用友元函数时的注意事项。特别提到了一个实例,说明了当父类的私有数据被子类使用但未在子类中声明时引发的编译错误,并提供了最终解决该问题的方法。

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

此类问题具体的问题在一下几个方面:


1.在工程中缺少lib文件

解决办法是  工程-》属性-》配置属性-》衔接器-》输入-》附加依赖项
点击编辑  根据缺少的文件添加相应的lib(lib文件相应百度)


2.你的类中函数的实现和声明不在同一个文件,编译器无法识别了,解决办法是通过将相应的声明和实现放在一起皆可以


3.如果你的函数中有友元函数(类模板中)  举个例子:

	friend istream& operator>>(istream& in, BinaryTree<T>& Tree);
	friend ostream& operator<<<T>(ostream& out, BinaryTree<T>& Tree);

上面那个是重载输入 下面的是重载输入  

在这几版VS中要在函数参数前面加上<T>  在实现的时候不要加就可以


2015/12/24 编辑:

今天在写数据结构的时候又发现了上面的问题,后来尝试了三种办法都没用
最后发现是这样一种情况

写了一个类 a ,另一个类b继承a  ,b中的函数使用了a中的私有数据,但是a本身并没有使用自己的数据(就是a中的数据就给B用了)

然后编译的时候就出错了,完了以后怎么改都改不了

最后我把a里面的所有成员都丢到b里面去了,编译居然过了(忘了说,a里面含有纯虚函数。。)

用的编译器是VS2008  以供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值