所以我为我的作业分配了3个文件,这个问题与作业有关,但是试图找出为什么代码我想用作我的作为贝司的代码。赋值没有正确编译。
首先,文件(linkedList.h)中有一个抽象类(linkedListType),可在此处找到:> http://pastebin.com/STGHvdDs>
然后,类unorderedLinkList继承自(在文件unorderedLinkedList.h中),可以在http://pastebin.com/yyv5vT7i
找到没有单独的.cpp文件,所有内容都在.h文件中。
当我编译main / test程序时(只是为了看看在我开始作业之前我会得到什么错误)我得到了很多类似的错误:
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),但是没有做任何事情来帮助解决这个问题。
请帮助,所以我可以快点,实际完成我的作业部分,直到我知道为什么这不起作用。所以你不要想我试图让你为我做作业:我的作业是编写教授给出的几种操作链接列表的方法。
谢谢!
答案 0 :(得分:2)
您的问题是您尝试访问名称first
作为在范围内找不到的独立名称:类模板不查看模板化基类以查找名称,除非该名称是一个从属名称。在第一阶段查找期间解析非依赖名称,此时基类是未知的(它可以专门用于具有完全不同的布局)。在第二阶段查找期间查找从属名称。
因此,您需要使用例如
将名称first
设为从属名称
this->first
linkedListType<T>::first
我个人的偏好是使用this->
,因为这很好地说明了实际含义,如果成员的位置发生变化,也不需要更改。
答案 1 :(得分:1)
预先导致问题的变量 - > Oblivious船长https://stackoverflow.com/users/845568/captain-obvlious应该得到答复,我很感激他,但我不小心删除了他的答案而不是点击接受(虽然从咖啡中保存了我的笔记本电脑)。