我有以下代碼不按預期編譯。我有一個具有靜態成員函數的類,另一個類包含試圖使用它的頭。它似乎沒有工作。靜態成員函數沒有按預期工作
static bool validLocation(int _x) // within class A
{
return false;
};
B類包括類A,並具有在其功能之一下面的調用:
if (!(A::validLocation(180)))
continue;
顯然,這些被簡化用於讀的目的,但是這是爲什麼不能接受?
對不起,模糊不清。至於錯誤信息:
"A::validLocation(int)", referenced from: B::functionThatCallsThis() in B.o
Symbols not found.
Collect2: ld returned 1 exit status
靜態函數是公開的,在頭文件中聲明。
現在缺少的是編譯器錯誤消息;) – 0xC0000022L 2011-02-24 17:39:40
哇,感謝。半睡着了。我將更新 – jackz 2011-02-24 17:47:15
您是否嘗試從所有命名空間(領先的'::')轉義,然後顯式限定類的命名空間?也許'B班'看到A,但不是正確的?!爲了排除這種情況,你可以暫時讓B成爲A的「朋友」(然後我們確定它不是關於隱藏的成員函數等等)。 – 0xC0000022L 2011-02-24 17:52:25