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

被折叠的 条评论
为什么被折叠?



