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
.