我想将对象传递给另一个类以修改它,并且我希望对其进行修改,以便将它传播到类对象实例中拍摄。这应该与此代码:通过将对象传递给类构造函数来修改另一个类的对象
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