2012-10-29 12 views
-2

我正在尋找一種方法來把這個(工作):C++/V8方便的方式來調用非靜態函數/創建臨時的實例

HandleScope scope; 
scope.Close(stuff); 

進入像這樣的東西

(HandleScope scope).Close(stuff); 

我試着用:

HandleScope::Close(stuff); 

但它不工作。

[@Xeo]

這是一個從V8這個類。

http://bespin.cz/~ondras/html/classv8_1_1HandleScope.html


如果dowvote,至少解釋爲什麼你這樣做。

+1

「static_fn」的聲明是什麼樣的? – Xeo

+1

如果'MyClass :: static_fn();'不起作用,則說明存在問題。 –

+0

@almosnow你調用了哪個靜態函數,函數調用是什麼樣子的?同等重要:你得到了什麼錯誤信息? – jogojapan

回答

3

這隻能用構造函數完成。變量聲明和函數調用都是語句。爲什麼要這麼做?您在代碼中按照;付款?

@Adam指出,如果函數是靜態的,你可以直接調用它,但是你根本不需要創建類的實例。

+0

IDK,只是好奇 – almosnow

3

如果函數是靜態的,我想你可以叫MyClass::static_fn();

+0

沒有工作......:C – almosnow

+2

事實證明,功能畢竟不是靜態的(儘管提問者原本以爲是這樣)。 – jogojapan

1

如果我的猜測,Close是一個非靜態方法,那麼正確的語法,你希望的東西糾正被

HandleScope().Close(stuff); 

創建HandleScope的臨時實例,調用Close,並立即銷燬該臨時實例。

相關問題