2014-10-26 492 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->,因爲這需要很好地說明什麼是真正的意思的照顧,它也並不需要,如果位置被改變成員改變。