我有一個函數:類實例化時,需要指針
void func(Obj* obj){
...
}
爲了方便起見,我有時喜歡這樣稱呼它
func(&MyObj(param1, param2));
這將當然不是工作因爲該對象將是一個右值。但是,我怎麼能實現我想要做的?
我有一個函數:類實例化時,需要指針
void func(Obj* obj){
...
}
爲了方便起見,我有時喜歡這樣稱呼它
func(&MyObj(param1, param2));
這將當然不是工作因爲該對象將是一個右值。但是,我怎麼能實現我想要做的?
你不得不做的事:
Obj p(param1, param2);
func(&p);
或者,如果和只有func
管理其參數(否則,這是一個內存泄漏)的壽命,你可以這樣做:
func(new Obj(param1, param2));
或重寫func()
採取Obj
而不是Obj*
。
嘗試
Obj myobject(param1, param2);
func(&myobject);
,將創建堆棧上的對象和指針傳遞給它的功能func
也許'func'使用引用。 –
'模板 T&左值(T && X){ 返回X; } func(&lvalue(MyObj(param1,param2));' –
0x499602D2
@ 0x499602D2,你可以把它轉換成答案,有一點解釋嗎? –