2011-05-25 52 views
0

我有這樣的功能:標識符沒有找到,即使參數依賴查找

short cmd_Draw2DPoly(short ThreeDmode, sds_point startpoint[]){...} 

,我在另一個類

cmd_Draw2DPoly(0, startpoint); 

這樣稱呼它,但此錯誤顯示出來

error C3861: 'cmd_Draw2DPoly': identifier not found, even with argument-dependent lookup 

有誰知道什麼是錯的?

+10

該函數不在您要嘗試調用它的範圍內。可能你忘了聲明它,但我只是猜測,因爲你沒有提供testcase_。 – 2011-05-25 13:06:13

+0

關鍵問題是**哪裏有你有'cmd_Draw2DPoly'函數? – 2011-05-25 14:03:49

回答

0

如果您從另一個類調用成員函數,則需要傳遞要調用它的對象。

someObject.cmd_Draw2DPoly(0, startpoint); 
+0

是什麼讓你認爲cmd_Draw2DPoly是一個成員函數? – 2011-05-25 14:02:12

+0

@Jan,當我編寫答案時,問題使用「方法」,雖然方法不是C++詞彙的一部分,但最常見的用途是某種成員函數(最接近其原始SmallTalk意思的是將其限制爲虛擬成員,但這可能會假設太多)。 – AProgrammer 2011-05-25 14:05:50

1

如果不指定該類的實例,則不能調用類的方法。所以,如果cmd_Draw2DPoly不是一個獨立的功能,並且不是「另一個類」的成員,那麼你不能這樣稱呼它。

+0

是什麼讓你認爲cmd_Draw2DPoly是一種方法? – 2011-05-25 14:01:48

+0

@Jan Hudec,OP說「在另一個班級」,這讓我覺得有一堂課和另一堂課。這只是一個猜測。 – 2011-05-25 16:11:08

1

看着你的個人資料讓我覺得你是一個Java開發人員,你可能不熟悉C++中namespace的概念,它可能會在文件中間打開和關閉(與擴展到整個文件的Java包不同)。因此,檢查是否存在可能包含cmd_Draw2DPoly定義的塊。