作者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