객체를 수정하기 위해 다른 클래스에 객체를 전달하고 싶습니다.이 객체에 대한 변경 사항을 클래스 인스턴스의이 객체에 전달하려고합니다. 찍은. 이 코드와 함께 작동해야합니다 :클래스 생성자에 전달하여 다른 클래스의 객체 수정
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을 읽었으며 나는 방식 포인터와 참조 ++/CLI C에서 작동 이해 생각, 내가합니까?
상위 클래스에서 전역 변수를 생성하지 않고 인스턴스를 생성자에 전달하지 않고이를 수행하는 방법은 무엇입니까? 부모 클래스에서
코드 : 여기
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
ref를 사용하여 객체 생성자를 전달할 수 있다고 생각하지 않습니다. 메서드를 사용하여 ref로 객체를 전달할 수 있습니까? – Paparazzi
@svick 애플리케이션 필자는 쓰기가 꽤 많이 이루어 졌기 때문에 내가 가지고 있다고 생각한다. – user1079475