2014-10-26 249 views
-2

所以我有我的hoemwork任务的3个文件,这个问题不涉及到任务,但试图找出为什么代码我想用作为我的任务bassis编译不正确。继承似乎没有正常工作

因此,首先有一个抽象类(linkedListType)文件(linkedList.h)中,它可以在这里找到:>http://pastebin.com/STGHvdDs>

那么类unorderedLinkList从继承(在文件unorderedLinkedList.h) ,可以在这里找到http://pastebin.com/yyv5vT7i

没有单独的.cpp文件,所有文件都在.h文件中。

当我编译主/测试程序(只是为了看看我之前甚至开始任务,我会得到什么样的错误),我有很多的错误与此类似:

unorderedLinkedList.h:在成员函数'bool unorderedLinkedList :: search(const Type &)const': unorderedLinkedList.h:46:error:'first'was not declared in this scope unorderedLinkedList.h:在成员函数中void unorderedLinkedList :: insertFirst(const Type & )': unorderedLinkedList.h:66:error:'first'was not declared in this scope *

他们都围绕着('未在范围内声明')。

有人建议对变量(在linkedListType中定义为private)使用linkedListType :: access方法,但是这并没有帮助解决这个问题。

请帮忙,所以我可以快点,实际上做我的作业的部分,我不能做,直到我知道为什么这不起作用。所以,你不htink我“米试图让你做我的家庭作业对我来说:我的家庭作业是写由教授来操纵链表给出几种方法

感谢

+0

嗯......你还可以发布你的'主'? – gmas80 2014-10-26 23:09:45

+0

这里发布的问题是要自成一体的!学习提供[SSCCE](http://sscce.org)。 – 2014-10-26 23:18:35

+0

Captain Oblivious 回答了它,我意识到它标记了它,而不是接受它。 – user3064209 2014-10-26 23:23:18

回答

2

您的问题是您尝试访问名称first作为在范围中找不到的独立名称:class templates do 而不是查看模板化基类以查找名称,除非该名称被作为依赖名称。非依赖名称在阶段I查找期间被解析,此时基类是未知的(它可以被专门化为具有完全不同的布局)。在II期查找期间查找相关名称。

因此,您需要使用例如名称first作为从属名称,,

  1. this->first
  2. linkedListType<T>::first

我个人的偏好是使用this->,因为这需要很好地说明什么是真正的意思的照顾,它也并不需要,如果位置被改变成员改变。