我想將對象傳遞給另一個類以修改它,並且我希望對其進行修改,以便將它傳播到類對象實例中拍攝。這應該與此代碼:通過將對象傳遞給類構造函數來修改另一個類的對象
public class sth{
private:
Object^ thisObject;
public: sth(Object^ ob)
{
this->thisObject=ob;
}
void someFunct()
{
this->thisObject=gcnew Object();
}
};
但它不起作用。在另一方面,這種代碼:
public: sth(Object^& ob)
{
ob=gcnew Object();
}
工作正常,但如果我想通過不是由類構造函數調用的一些方法可以使用該手柄我要創建我想到了一個全局句柄(因爲C++/CLI句柄是引用一個指針)會以這種方式是可行的:
public class sth{
private:
Object^ thisObject;
public: sth(Object^% ob)
{
this->thisObject=ob;//this doesn't works
/*ob = this->thisObject;*///this neither
}
void someFunct()
{
this->thisObject=gcnew Object();
}
};
我已閱讀this
,我想我明白指針和引用的方式工作在C++/CLI,是吧?
如何在父類中創建全局變量並將其實例傳遞給構造函數來實現此目的?從父類
代碼:
void method()
{
array<Object^>^ thisArr=nullptr;
verifyDial^ thisDial = gcnew verifyDial(thisArr);
thisDial->ShowDialog();
if(thisArr !=nullptr)
//do sth
else
return;
}
這裏是verfiyDial類:
public ref class verifyDial{
public: array<Object^>^ thisArr;
public: verifyDial(array<Object^>^ arr)
{
this->thisArr=arr;
}
///////////////////////
void someMethod()////event handler
{
if(/*everything went right*/)
{
this->thisArr=gcnew array<Object^>(2);
this->thisArr[0] = true;
this->thisArr[1] = true;
}
this->Close();
}
更容易理解只是可以肯定,你有一個很好的理由使用C++/CLI,對不對? – svick 2012-07-30 15:38:50
我不認爲你可以傳遞一個對象構造函數參考。你可以使用一個方法並通過ref傳遞該對象嗎? – Paparazzi 2012-07-30 15:40:11
@svick我寫的應用程序已經完成,所以我想我有。 – user1079475 2012-07-30 15:45:06