【发布时间】:2017-12-28 17:52:27
【问题描述】:
我一直在尝试将名为Facade 的单例类的对象从Form1 传递到Form2。是的,这是一个广泛讨论的话题,但是所有网站都在 c# 中解决了这个问题,我尝试在 c++ 中调整这些技术,但它不起作用,尽管它们在 c# 中工作。
在Form1
...
textBox1->Text=f.getVars1().ToString();
Form2^ f2=gcnew Form2(f);//error 5
...
在Form2
Facade f1;
Form2(Facade f2)
{
InitializeComponent();
f1=f2;//error 3
}
在Form2按钮事件中textBox1->Text=f1.getVars1().ToString();
当我尝试时它会显示这些错误
Error 3 error C2679: binary '=' : no operator found which takes a
right-hand operand of type 'Facade' (or there is no acceptable
conversion)
Error 5 error C2664: 'FacadeCheck::Form2::Form2(Facade)' : cannot
convert parameter 1 from 'Facade' to 'Facade'
而且我几乎尝试了所有解决方案,所以请任何人尝试在c++ 中解决这个问题,这将是一个很大的帮助。我使用 2010 版的 ms visual studio...任何帮助表示赞赏,在此先感谢。
【问题讨论】:
-
Facade显然不可复制。 -
@user0042 那么,你建议我怎么解决呢?
标签: c++ winforms parameter-passing