如果我在另一个头文件中有一个带有textbox1
的C ++ / CLI表单和一个名为Dummy
的类,如果我想“直接”更改{{1}的值,我该怎么办?一个函数存在于Dummy类中吗?
答案 0 :(得分:2)
C ++会进行单遍编译。这意味着在编译器已经看到它之前你不能使用它。
当你有两个相互使用的类时,这可能很棘手。幸运的是,C ++还允许前向声明,它告诉编译器“这是我稍后将为您提供的类或函数的签名”。
通常,按顺序为编译器提供以下内容:
转发类
ref class Dummy;
ref class MyForm;
类定义
ref class Dummy { ... };
ref class MyForm { ... };
类成员函数定义
void Dummy::DoIt()
{
myForm->textBox1->Text = whatever;
}
通常,唯一需要的是将函数定义放在.cpp文件中,并确保.cpp文件#include
是每个类的头文件。对于您的问题,这意味着您应该将此行放在Dummy.cpp
中,其中包括Dummy.h
和myform.h
。
答案 1 :(得分:0)
如何将变量作为TextBox对象传递给虚拟类,然后, 虚拟进行更改并返回TextBox对象
public System.Windows.Forms.TextBox ChangeText(System.Windows.Forms.TextBox MyTextBox)
{
MyTextBox.Text = "HELLO";
return MyTextBox;
}
这是C#类中的一个方法,也许你可以使用相同的逻辑。