ここでの問題は、なぜすべてが c++ の世界のようになっているのかを理解していないことだと思います。関数 Bar を持つクラス Foo を作成したいとしましょう。これは非常に簡単です。
class Foo
{
void Bar(){/*code*/}
};
これで、ファイルに Foo クラスがありますが、別のファイルにある必要がある Baz クラスも必要です。Foo は移動できないので、C++ には #include システムがあります。このようにして、ファイルに Foo を入れ、別のファイルに Baz を入れても、両方を使用することができます。理論的な例は次のとおりです。
#include "Foo.h"
class Baz
{
Foo* foo;
};
コンパイラーは次のように変換します (今のところ、Foo.h には以前に書いたものが含まれていると考えてください):
class Foo
{
void Bar(){/*code*/}
};
class Baz
{
Foo* foo;
};
しかし、これは多くの理由で非常に非効率的です。まず第一に、すべてをこのようにしておくと、コンパイラーはファイルを別の場所に #include するたびに同じものをコンパイルする必要があるため、C++ には別のメカニズムがあり、クラス Foo は別の場所に存在し、将来利用可能になるコンパイラであり、このように見えるため、C++ でクラスを作成するときは、.h ファイルを使用してどのように見えるかを記述し、実装を cpp に保持します。ファイル。この場合、次のようになります。
//Foo.h
class Foo
{
void Bar();
};
//Foo.cpp
#include "Foo.h"
void Foo::Bar(){/*code*/}
//Baz
#include "Foo.h"
class Foo
{
void Bar(){/*code*/}
};
TLDR、あなたがする必要があるのは、関数定義を削除してそのままにすることです
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e);
そしてcppファイルには
System::Void Form1::button1_Click(System::Object^ sender, System::EventArgs^ e)
{
bool result = function();
}