小部件||添加 class 和方法

Wxwidgets || Add class and methods

我需要通过添加 class with 方法来重建此代码。如果 Zad2frame 已经是 class,我该如何添加 class? 第一个 class 应该处理复数的加法,第二个减法等。 我有一个外部文件中的所有代码,Zespolone.h(必需)。

#ifndef ZESPOLONE_H_INCLUDED
#define ZESPOLONE_H_INCLUDED

#endif // ZESPOLONE_H_INCLUDED

struct Zespolona
{
    double rzeczywista;
    double urojona;
};

void Zad2Frame::OnButton1Click(wxCommandEvent& event)
{
    Zespolona przycisk1_1;
    Zespolona przycisk1_2;
    int wynik1;
    int wynik2;
    char* znak;
    wxString wynik;

    if(TextCtrl1->GetValue().ToDouble(&przycisk1_1.rzeczywista) && TextCtrl2->GetValue().ToDouble(&przycisk1_1.urojona)
            && TextCtrl3->GetValue().ToDouble(&przycisk1_2.rzeczywista) && TextCtrl4->GetValue().ToDouble(&przycisk1_2.urojona))
    {
        wynik1 = (przycisk1_1.rzeczywista + przycisk1_2.rzeczywista);
        wynik2 = (przycisk1_1.urojona + przycisk1_2.urojona);
        if(wynik2>=0)
        {
            znak="+";
        }
        wynik << wynik1<<znak<<wynik2<<"i";
        TextCtrl5->SetValue(wynik);
    }
}

void Zad2Frame::OnButton2Click(wxCommandEvent& event)
{
    Zespolona przycisk1_1;
    Zespolona przycisk1_2;
    int wynik1;
    int wynik2;
    char* znak;
    wxString wynik;

    if(TextCtrl1->GetValue().ToDouble(&przycisk1_1.rzeczywista) && TextCtrl2->GetValue().ToDouble(&przycisk1_1.urojona)
            && TextCtrl3->GetValue().ToDouble(&przycisk1_2.rzeczywista) && TextCtrl4->GetValue().ToDouble(&przycisk1_2.urojona))
    {
        wynik1 = (przycisk1_1.rzeczywista - przycisk1_2.rzeczywista);
        wynik2 = (przycisk1_1.urojona + przycisk1_2.urojona);
        if(wynik2>=0)
        {
            znak="+";
        }
        wynik << wynik1<<znak<<wynik2<<"i";
        TextCtrl5->SetValue(wynik);
    }
}

void Zad2Frame::OnButton3Click(wxCommandEvent& event)
{
    Zespolona przycisk1_1;
    Zespolona przycisk1_2;
    int wynik1;
    int wynik2;
    char* znak;
    wxString wynik;

    if(TextCtrl1->GetValue().ToDouble(&przycisk1_1.rzeczywista) && TextCtrl2->GetValue().ToDouble(&przycisk1_1.urojona)
            && TextCtrl3->GetValue().ToDouble(&przycisk1_2.rzeczywista) && TextCtrl4->GetValue().ToDouble(&przycisk1_2.urojona))
    {
        wynik1 = (przycisk1_1.rzeczywista * przycisk1_2.rzeczywista);
        wynik2 = (przycisk1_1.urojona * przycisk1_2.urojona);
        if(wynik2>=0)
        {
            znak="+";
        }
        wynik << wynik1<<znak<<wynik2<<"i";
        TextCtrl5->SetValue(wynik);
    }
}

void Zad2Frame::OnButton4Click(wxCommandEvent& event)
{
    Zespolona przycisk1_1;
    Zespolona przycisk1_2;
    int wynik1;
    int wynik2;
    char* znak;
    wxString wynik;

    if(TextCtrl1->GetValue().ToDouble(&przycisk1_1.rzeczywista) && TextCtrl2->GetValue().ToDouble(&przycisk1_1.urojona)
            && TextCtrl3->GetValue().ToDouble(&przycisk1_2.rzeczywista) && TextCtrl4->GetValue().ToDouble(&przycisk1_2.urojona))
    {
        wynik1 = (przycisk1_1.rzeczywista / przycisk1_2.rzeczywista);
        wynik2 = (przycisk1_1.urojona / przycisk1_2.urojona);
        if(wynik2>=0)
        {
            znak="+";
        }
        wynik << wynik1<<znak<<wynik2<<"i";
        TextCtrl5->SetValue(wynik);
    }
}

我尝试了 3 种方法来完成这项作业,每次都出现 class 错误。 我如何重建我的代码以便外部 class 处理单个事件(不是 zad2frame)?

请帮忙,如果我不做这个任务,我就无法继续下一个任务。

对于 C++,每个 class 通常存储在两个文件中。包含 class 声明的头文件。例如:MyNewClass.h。以及一个包含 class 实现的 cpp 文件。例如:MyNewClass.cpp.

因此,在这种情况下,要使用 MyNewClass,您将在程序顶部附近找到行 #include "MyNewClass.h"。一旦包含该文件,就可以在任何需要的地方使用 MyNewClass