评估变量的构造函数等价物
Evaluating the constructor equivalent of a variable
我有构造函数
class MyFrame : public wxFrame { // defines the options on the top bar of the screen here we have:
public:
MyFrame();
private:
void OnHello(wxCommandEvent& event); // hello option
void OnExit(wxCommandEvent& event); // exit option
void OnAbout(wxCommandEvent& event); // about option
void OnHelp(wxCommandEvent& event); // event option
// void OnCourseTextBoxClicked(wxCommandEvent &event);
void OnOneHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnTwoHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnThreeHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnFourHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnFiveHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnDisplayCgpaButtonClicked(wxCommandEvent &event);
// Common Courses equating their credit load
/* 100 LEVEL FIRST SEMESTER */
int CHM111 = 3;
int CHM113 = 3;
int MTH111 = 3;
int MTH112 = 3;
int PHY111 = 3;
int PHY113 = 3;
int GST111 = 2;
int GST112 = 2;
/* 100 LEVEL SECOND SEMESTER */
int CHM122 = 3;
int CHM124 = 3;
int MTH123 = 3;
int MTH125 = 3;
int PHY109 = 2;
int PHY124 = 4;
int GST121 = 2;
int GST122 = 2;
int GST123 = 2;
int LEVEL_TOTAL_100 = 47;
}
在代码库的其他地方,一些文本被输入到文本框中。文本框应该包含构造函数中定义的变量之一,这些变量的计算结果为各自的整数。
当计算文本框的内容时,例如:
course_one_text_box->GetValue();
评价
CHM111
我想获取 CHM111
的构造函数整数值 3
。我想在数学公式中使用这个值。
我该怎么做?
是否有特定的语法可以获取构造函数记录的变量版本?
谢谢。
wxTextCtrl
适用于 wxString
,不适用于数字。
但是从 wxString 中获取数字真的很容易:使用 wxString::ToCLong。例如:
long value;
mystring = mytextctrl->GetValue();
if ( ! mystring.ToCLong(&value) )
some message here, conversion failed (not a number)
//Your comparisons:
if ( value == (long)CHM111 )
....
因此,如果用户输入 3
,则 'if' 为真,因为 CMH111
被初始化为 3
注意 (long)
从 int
强制转换以避免编译器警告。为什么不使用 long
而不是 int
作为 CHMxxx 的类型?
在 C++ 中不可能与变量的 名称 进行比较。
@Alvindera97,
您的程序是否应限制用户只能输入那些常量?那你用错了工具!
看看wxComboBox/wxChoice。这样,用户将只能从列表中选择 select,并且您不需要将这些常量定义保留在 class.
中
希望对您有所帮助!
我有构造函数
class MyFrame : public wxFrame { // defines the options on the top bar of the screen here we have:
public:
MyFrame();
private:
void OnHello(wxCommandEvent& event); // hello option
void OnExit(wxCommandEvent& event); // exit option
void OnAbout(wxCommandEvent& event); // about option
void OnHelp(wxCommandEvent& event); // event option
// void OnCourseTextBoxClicked(wxCommandEvent &event);
void OnOneHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnTwoHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnThreeHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnFourHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnFiveHundredLevelDisplayGpButtonClicked(wxCommandEvent &event);
void OnDisplayCgpaButtonClicked(wxCommandEvent &event);
// Common Courses equating their credit load
/* 100 LEVEL FIRST SEMESTER */
int CHM111 = 3;
int CHM113 = 3;
int MTH111 = 3;
int MTH112 = 3;
int PHY111 = 3;
int PHY113 = 3;
int GST111 = 2;
int GST112 = 2;
/* 100 LEVEL SECOND SEMESTER */
int CHM122 = 3;
int CHM124 = 3;
int MTH123 = 3;
int MTH125 = 3;
int PHY109 = 2;
int PHY124 = 4;
int GST121 = 2;
int GST122 = 2;
int GST123 = 2;
int LEVEL_TOTAL_100 = 47;
}
在代码库的其他地方,一些文本被输入到文本框中。文本框应该包含构造函数中定义的变量之一,这些变量的计算结果为各自的整数。
当计算文本框的内容时,例如:
course_one_text_box->GetValue();
评价
CHM111
我想获取 CHM111
的构造函数整数值 3
。我想在数学公式中使用这个值。
我该怎么做? 是否有特定的语法可以获取构造函数记录的变量版本? 谢谢。
wxTextCtrl
适用于 wxString
,不适用于数字。
但是从 wxString 中获取数字真的很容易:使用 wxString::ToCLong。例如:
long value;
mystring = mytextctrl->GetValue();
if ( ! mystring.ToCLong(&value) )
some message here, conversion failed (not a number)
//Your comparisons:
if ( value == (long)CHM111 )
....
因此,如果用户输入 3
,则 'if' 为真,因为 CMH111
被初始化为 3
注意 (long)
从 int
强制转换以避免编译器警告。为什么不使用 long
而不是 int
作为 CHMxxx 的类型?
在 C++ 中不可能与变量的 名称 进行比较。
@Alvindera97, 您的程序是否应限制用户只能输入那些常量?那你用错了工具!
看看wxComboBox/wxChoice。这样,用户将只能从列表中选择 select,并且您不需要将这些常量定义保留在 class.
中希望对您有所帮助!