visual studio 2012 - c++中是否有改变常量值的方法?

visual studio 2012 - Is there anyway to change constant value in c++

本文关键字:常量 改变 方法 是否 2012 studio c++ visual      更新时间:2023-10-16

我有一个用C++编写的算法,我在该算法中实现GUI。问题是它包含常量值,这是写入头文件的onu的数量。我想取user的输入但我不能这么做,因为它是常数。有什么办法可以做到吗?我试过不同的方法,但都做不到。算法是Glen Kramer DESL,我在visual studio中实现GUI。

请告诉我怎么做。

还有一件事需要澄清。我不能将它声明为一个变量,因为如果我这样做,那么由于下面的行,我得到了一个错误。

class OLT : public SimBase< NUM_LLID >

这里的NUM_LLID是需要修改其值的常量。该常量在顶部包含的头文件中声明。

不能更改常量。根据定义,它是不可变的。使用普通的变量声明代替。如果这样做会创建一个全局变量(这通常是不好的),那就在配置类中把它变成一个可变属性。

如果代码为常量使用了标识符,则可以将该常量更改为变量:
从<<strong>/strong>:
#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.  

您还需要检查常量传递给函数的位置。

同样,这种改变可能导致程序可执行大小的改变和内存需求的改变。例如,常量可以放在可执行文件中。将常量更改为变量将需要内存位置和从内存中获取的指令。

Switch语句

c++语言要求switch语句中case的常量字面值。变量对case不起作用。代码需要重写。

也许你可以编写一个包装器方法,它从用户那里获取常量,并通过创建一个复制用户输入的新变量来内部编写你自己的方法…