線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3924
推到 Plurk!
推到 Facebook!

出現 Ambiguity between 'Function' and 'System::Function'

答題得分者是:syntax
linly
一般會員


發表:42
回覆:37
積分:15
註冊:2007-10-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-22 00:39:07 IP:61.216.xxx.xxx 訂閱
您好!!

由於我使用一個別人寫好的 library(.lib),裡頭訂定了一個 Function 類別,導致我在使用他的時候會發生 Ambiguity 的情形。

我應該如何把 BCB 原先的那個 System::Function 給關閉,錯誤訊息如下:

[C Error] Function.h(108): E2015 Ambiguity between 'Function' and 'System::Function'
[C Error] Function.h(143): E2015 Ambiguity between 'Function' and 'System::Function'
[C Error] Function.h(148): E2015 Ambiguity between 'Function' and 'System::Function'
...

感謝

新年快樂

syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-22 03:19:13 IP:61.64.xxx.xxx 訂閱
使用 function 時,指定名稱空間

===================引 用 linly 文 章===================
您好!!

由於我使用一個別人寫好的 library(.lib),裡頭訂定了一個 Function 類別,導致我在使用他的時候會發生 Ambiguity 的情形。

我應該如何把 BCB 原先的那個 System::Function 給關閉,錯誤訊息如下:

[C Error] Function.h(108): E2015 Ambiguity between 'Function' and 'System::Function'
[C Error] Function.h(143): E2015 Ambiguity between 'Function' and 'System::Function'
[C Error] Function.h(148): E2015 Ambiguity between 'Function' and 'System::Function'
...

感謝

新年快樂

linly
一般會員


發表:42
回覆:37
積分:15
註冊:2007-10-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-22 08:52:39 IP:61.216.xxx.xxx 訂閱
我下載的 library 有 include file 和 lib 檔,然後當 BCB compiler 時,遇到 library 的 include file 時就會遇到我所說的錯誤訊息,原因是因為那個 include file 有以下宣告

class Function {
public:
...
private:
...
protected:
...
};


導致只要在這個 library 當中,任何有出現 Function 字眼的 include file 被我引入,那編譯就會出現 Function 與 System::Function 模糊不清的問題,只要 #include "..." 就會發生。

所以我會回請教版大,有沒有辦法關閉 System::Function 相關的 include file 或者名稱空間。等到我需要 BCB 的 System::Function ,才手動去引入它

感謝 syntax 前一篇的回覆



Sys===================引 用 syntax 文 章===================
使用 function 時,指定名稱空間




linly
一般會員


發表:42
回覆:37
積分:15
註冊:2007-10-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-22 11:22:40 IP:61.216.xxx.xxx 訂閱
解決方式:直接利用 #define Function Function1 把我下載的 library 裡頭 include file 的名稱代換掉即可。

因為找來的 library 沒有訂定名稱空間,只好這樣處理XD

也謝謝 syntax 之前的回應 :)
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-22 14:16:54 IP:61.64.xxx.xxx 訂閱
恩,代換是一種方法
指定某名稱空間為「預設」,等需要使用system時,用system::function明訂,也是一種方法

===================引 用 linly 文 章===================
解決方式:直接利用 #define Function Function1 把我下載的 library 裡頭 include file 的名稱代換掉即可。

因為找來的 library 沒有訂定名稱空間,只好這樣處理XD

也謝謝 syntax 之前的回應 :)
系統時間:2024-05-08 8:50:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!