继承似乎无法正常工作
Inheritence doesn't seem to be working properly
所以我有3个文件用于我的作业,这个问题与作业无关,但我想弄清楚为什么我要用作作业基础的代码编译不正确。
因此,首先在文件(linkedList.h)中有一个抽象类(linkedListType),可以在这里找到:>http://pastebin.com/STGHvdDs>
然后类unorderedLinkList从中继承(在文件unorderedLinkedList.h中),可以在这里找到http://pastebin.com/yyv5vT7i
没有单独的.cpp文件,所有文件都在.h文件中。
当我编译主程序/测试程序时(只是为了在开始作业之前看看我会遇到什么错误),我会遇到很多类似的错误:
unorderedLinkedList.h:在成员函数"bool unorderedLinkedList::search(const Type&)const"中:unorderedLinkedList.h:46:错误:未在此作用域中声明"first"unorderedLinkedList.h:在成员函数"void unorderedLinkedList::insertFirst(const Type&)"中:unorderedLinkedList.h:66:错误:未在此作用域中声明"first"*
它们都围绕着这一点("未在范围内声明")。
有人建议对变量使用linkedListType::access方法(在linkedListType中定义为private),但这对解决这个问题没有任何帮助。
请帮帮我,这样我就可以快点做我不能做的家庭作业了,直到我知道为什么这不起作用。所以你不要以为我是想让你帮我做作业:我的作业是写教授给出的几种方法来操作链表
谢谢!
您的问题是,您试图将名称first
作为一个独立名称访问,而该名称在作用域中找不到:类模板不会查看模板基类以查找名称,除非该名称成为依赖名称。非依赖名称在第一阶段查找期间解析,此时基类是未知的(可以专门化为具有完全不同的布局)。在第二阶段查找期间查找从属名称。
因此,您需要使用例如使名称first
成为从属名称
this->first
linkedListType<T>::first
我个人倾向于使用this->
,因为它很好地说明了实际含义,而且如果成员的位置发生变化,它也不需要更改。
准备导致此问题的变量->船长疏忽https://stackoverflow.com/users/845568/captain-obvlious我应该为这个答案得到赞扬,我很感激他,但我不小心删除了他的答案,而不是点击接受(不过我把笔记本电脑从咖啡里救了出来)。
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- sdl软件渲染器不工作,工作在硬件加速的一个
- C++程序已停止工作-求解常微分方程