我想将对象传递给另一个类以对其进行修改,并且我希望对它所做的更改传播到从中获取它的类实例中的该对象。这应该与此代码一起使用:
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();
}
};
我读过这个
我想我理解指针和引用在 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();
}