作者Emerica (FLICK)
看板EE_DSnP
標題[問題] make a
時間Mon May 19 18:56:48 2008
出現以下的bug
adtTest.h:73: 警告:夥伴宣告 「std::ostream& operator<<(std::ostream&, const
Array<T>::AdtTestObj&)」 宣告了一個非範本函式
adtTest.h:73: 警告:(如果這不是您原來的想法,請確定此函式範本已經宣告過,並在
這裡的函式名後面加入 <>) -Wno-non-template-friend 停用此警告
adtTest.h:114: 錯誤:類型 「Array<Array<T>::AdtTestObj>」 不是由類型 「
Array<T>::AdtTest」 衍生的
adtTest.h:114: 錯誤:expected 「;」 before 「getPos」
adtTest.h:126: 錯誤:expected `;' before 「void」
adtTest.h:144: 錯誤:「class Array<Array<T>::AdtTestObj>::iterator」 is not a
type
adtTest.cpp:16: 錯誤:類型 「Array<T>::AdtTestObj」 不是由類型 「Array<T>」 衍
生的
adtTest.cpp:31: 錯誤:無法定義成員函式 「Array<T>::AdtTestObj::AdtTestObj」 於
「Array<T>」 之內
adtTest.cpp:36: 錯誤:「std::ostream& Array<T>::operator<<(std::ostream&,
const Array<T>::AdtTestObj&)」 帶且僅帶 1 個引數
adtTest.cpp:45: 錯誤:無法定義成員函式 「Array<T>::AdtResetCmd::exec」 於 「
Array<T>」 之內
adtTest.cpp:59: 錯誤:無法定義成員函式 「Array<T>::AdtResetCmd::usage」 於 「
Array<T>」 之內
adtTest.cpp:65: 錯誤:無法定義成員函式 「Array<T>::AdtResetCmd::help」 於 「
Array<T>」 之內
adtTest.cpp:75: 錯誤:無法定義成員函式 「Array<T>::AdtAddCmd::exec」 於 「
Array<T>」 之內
adtTest.cpp:106: 錯誤:無法定義成員函式 「Array<T>::AdtAddCmd::usage」 於 「
Array<T>」 之內
adtTest.cpp:112: 錯誤:無法定義成員函式 「Array<T>::AdtAddCmd::help」 於 「
Array<T>」 之內
adtTest.cpp:123: 錯誤:無法定義成員函式 「Array<T>::AdtDeleteCmd::exec」 於 「
Array<T>」 之內
adtTest.cpp:170: 錯誤:無法定義成員函式 「Array<T>::AdtDeleteCmd::usage」 於
「Array<T>」 之內
adtTest.cpp:177: 錯誤:無法定義成員函式 「Array<T>::AdtDeleteCmd::help」 於 「
Array<T>」 之內
adtTest.cpp:187: 錯誤:無法定義成員函式 「Array<T>::AdtPrintCmd::exec」 於 「
Array<T>」 之內
adtTest.cpp:206: 錯誤:無法定義成員函式 「Array<T>::AdtPrintCmd::usage」 於 「
Array<T>」 之內
adtTest.cpp:212: 錯誤:無法定義成員函式 「Array<T>::AdtPrintCmd::help」 於 「
Array<T>」 之內
adtTest.cpp:215: 錯誤:expected `}' at end of input
../../include/array.h: In constructor 「Array<T>::Array()」:
../../include/array.h:20: 錯誤:類別 「Array<T>」 沒具名為 「_data」 的欄位
../../include/array.h:20: 錯誤:類別 「Array<T>」 沒具名為 「_size」 的欄位
../../include/array.h:20: 錯誤:類別 「Array<T>」 沒具名為 「_capacity」 的欄
位
../../include/array.h: In destructor 「Array<T>::~Array()」:
../../include/array.h:21: 錯誤:「_data」 在此作用欄位中尚未宣告
../../include/array.h: In member function 「Array<T>::iterator
Array<T>::begin() const」:
../../include/array.h:87: 錯誤:「_capacity」 在此作用欄位中尚未宣告
../../include/array.h:88: 錯誤:「_size」 在此作用欄位中尚未宣告
../../include/array.h:89: 錯誤:「_data」 在此作用欄位中尚未宣告
../../include/array.h: In member function 「Array<T>::iterator
Array<T>::end() const」:
../../include/array.h:92: 錯誤:「_capacity」 在此作用欄位中尚未宣告
../../include/array.h:93: 錯誤:「empty」 的引數不依賴範本參數,所以 「empty」
的宣告必須可用
../../include/array.h:93: 錯誤:(如果您使用 「-fpermissive」,G++ 會接受您的程
式碼,但是允許使用未定義的名稱是過時的風格)
../../include/array.h:93: 錯誤:「_data」 在此作用欄位中尚未宣告
../../include/array.h:94: 錯誤:「_data」 在此作用欄位中尚未宣告
../../include/array.h:94: 錯誤:「_size」 在此作用欄位中尚未宣告
../../include/array.h:94: 錯誤:expected `)' before 「}」 token
../../include/array.h:94: 錯誤:expected 「;」 before 「}」 token
adtTest.h: In member function 「void Array<T>::AdtTest::deleteRandom(size_t)」
:
adtTest.h:98: 錯誤:「getPos」 的引數不依賴範本參數,所以 「getPos」 的宣告必
須可用
adtTest.h: In member function 「void Array<T>::AdtTest::printForward()」:
adtTest.h:128: 錯誤:expected `;' before 「li」
adtTest.h:129: 錯誤:「li」 在此作用欄位中尚未宣告
adtTest.h: In member function 「void Array<T>::AdtTest::printBackward()」:
adtTest.h:136: 錯誤:expected `;' before 「li」
adtTest.h:136: 錯誤:「li」 在此作用欄位中尚未宣告
adtTest.h: In member function 「void Array<T>::AdtTest::printData(size_t,
int, size_t)」:
adtTest.h:146: 錯誤:「unary *」 的引數類型無效
adtTest.cpp: At global scope:
adtTest.cpp:39: 錯誤:expected unqualified-id at end of input
make[1]: *** [adtTest.o] Error 1
make: *** [all] Error 2
==========================================================================
很多很長 但是我應該都沒改到adtTest.*的東西
那問題會出在哪裡呢?
謝謝回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.243.175
※ 編輯: Emerica 來自: 140.112.243.175 (05/19 18:57)
1F:推 ric2k1:你是不是用 windows download 程式在傳到 linux? 05/19 19:29
2F:推 ric2k1:會不會是 ascii file end of line 的問題? 05/19 19:30
3F:→ ric2k1:If yes, try "dos2unix" command... 05/19 19:30
4F:→ Emerica:謝謝我試試看! 05/19 19:32
5F:→ Emerica:在問一下 我是要針對 array.h? 還是adtTest? 謝謝! 05/19 19:37
6F:推 ckaha:array.h 你可能class沒宣告好 我之前也是這樣 05/19 19:40
7F:→ ckaha:那個問題是出在他根本沒有讀完整個class 可能括號沒括對 05/19 19:41
8F:→ Emerica:謝謝 我再檢查一下 05/19 19:43
9F:→ Emerica:檢查了括號 也用了dos2unix 但還是不過耶... 05/19 19:49
10F:推 ric2k1:試著將 array.h 的一些 code comment out 掉... 05/19 22:00
11F:→ ric2k1:還是 class 沒有加 ; ? 05/19 22:00
12F:→ Emerica:以解決 謝謝老師和上面那位同學 05/19 22:07