在c++中返回指標給lua還是返回引用給lua,本質一樣!
如何在lua裡面動態申請變數,類!
example.h
#include
struct haha
;class
vector
;void
ref(vector& v)
;void
val(vector v)
;
#include
"example.h"
#include
#include
using
namespace std;
vector::
vector
(int a,
int b)
void vector::
display()
double vector::
abs(
)haha& vector::
return_ref()
;void
ref(vector& v)
void
val(vector v)
%module example
%struct haha
;class
vector
;void
ref(vector& v)
;void
val(vector v)
;
swig -c++ -lua example.i
> require "example"
table:
00000000001995a0 .\example.dll
> a=example.
vector(12
,23)> example.
ref(a)
> a.x
12345.0
> example.
val(a)
> a.x
12345.0
傳出來指標也可以像用引用似的訪問那個元素啊!
> require "example"
table:
0000000000199ae0 .\example.dll
> a=example.
vector(12
,23)> b=a:
return_ref()
> b
> b.a
1.0
#include
struct haha
;class
vector
;void
ref(vector& v)
;void
val(vector v)
;
#include
"example.h"
#include
#include
using
namespace std;
vector::
vector
(int a,
int b)
void vector::
display()
double vector::
abs(
)int
& vector::
return_ref()
;void
ref(vector& v)
void
val(vector v)
%include cpointer.i
%pointer_functions
(int
, intp)
;
a = example.
new_intp()
example.
intp_assign
(a,37
)r = example.
intp_value
(a)example.
delete_intp
(a)
傳值 傳引用 傳指標
收藏 相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資...
傳值 傳引用 傳指標
相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資料傳遞...
傳值 傳指標 傳引用
c語言的規則很簡單 所有的引數都是傳值呼叫 在這句話的基礎上,我們來分析值傳遞 指標傳遞 引用傳遞的區別。一 值傳遞 值傳遞,這與c函式的性質有關。c函式的所有引數均以 傳值呼叫 方式進行傳遞,這意味著函式值將獲得引數值的乙份拷貝,函式可以放心修改這個拷貝值,而不必擔心會修改呼叫程式實際傳給他的引數...