我有一个用C++
编写的算法,我正在该算法中实现GUI。问题是它包含常量值,即头文件中写入的onu数。我想从用户那里获取输入,但我不能这样做,因为它是一个常数。有没有办法做到这一点。我尝试了不同的方法,但无法做到这一点。算法是Glen Kramer DESL
,我正在visual studio
中实现GUI。
请帮我怎么做。
还有一点需要澄清。 我不能将其声明为变量,因为如果我这样做,那么由于跟随行而出现错误。
class OLT : public SimBase< NUM_LLID >
此处NUM_LLID
是需要更改其值的常量。并且常量在顶部包含的头文件中声明。
答案 0 :(得分:1)
您无法更改常量。根据定义,它是不可变的。请改用普通变量声明。如果这会创建一个全局变量(通常是邪恶的),那么在配置类中使它成为一个可变属性。
答案 1 :(得分:1)
如果代码使用常量的标识符,则可以将常量更改为变量:
发件人强>:
#define PI 3.14159
要强>:
double PI = 3.14159;
您必须重新编译并验证代码编译时没有警告和错误。
某些版本的C ++可能不允许变量作为数组容量:
旧:
#define BUFFER_SIZE 1024
unsigned int buffer[BUFFER_SIZE];
新:
unsigned int BUFFER_SIZE = 1024;
unsigned int buffer[BUFFER_SIZE]; // May not be valid, depends on C++ version.
您还需要查看常量传递给函数的位置。
此外,更改可能会导致程序可执行文件大小更改并且内存要求也会更改。例如,常量可以放在可执行文件中。将常量更改为变量需要内存位置和从内存中获取的指令。
C ++语言需要case
语句中switch
的常量文字。变量不适用于case
。代码需要重写。
答案 2 :(得分:0)
可能你可以编写一个包装器方法,该方法从用户获取常量,并通过创建复制用户输入的新变量在内部编写自己的方法......