小部件||添加 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
。
我需要通过添加 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
。