Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在c+;中是否有更改常量值的方法+;_C++_Visual Studio 2012_Header Files - Fatal编程技术网

C++ 在c+;中是否有更改常量值的方法+;

C++ 在c+;中是否有更改常量值的方法+;,c++,visual-studio-2012,header-files,C++,Visual Studio 2012,Header Files,我有一个用C++编写的算法,我正在用该算法实现GUI。问题是它包含常量值,即写入头文件的onu数。我想从用户那里获取输入,但我不能这样做,因为它是一个常量。有办法吗。我尝试过不同的方法,但无法做到这一点。算法是Glen Kramer DESL,我正在visual studio中实现GUI 请帮我怎么做 还有一件事需要澄清。 我不能将其声明为变量,因为若我这样做,那个么我会因为下面的行而得到一个错误 classolt:public SimBase 这里的NUM\u LLID是需要更改其值的常量。常

我有一个用
C++
编写的算法,我正在用该算法实现GUI。问题是它包含常量值,即写入头文件的onu数。我想从用户那里获取输入,但我不能这样做,因为它是一个常量。有办法吗。我尝试过不同的方法,但无法做到这一点。算法是
Glen Kramer DESL
,我正在
visual studio
中实现GUI

请帮我怎么做

还有一件事需要澄清。 我不能将其声明为变量,因为若我这样做,那个么我会因为下面的行而得到一个错误

classolt:public SimBase


这里的
NUM\u LLID
是需要更改其值的常量。常量在顶部包含的头文件中声明。

可能是您可以编写一个包装器方法,从用户处获取常量,并通过创建一个新变量来内部编写您自己的方法,复制用户输入…

您不能更改常量。根据定义,它是不可变的。改用普通变量声明。如果这会创建一个全局变量(通常是邪恶的),则将其作为配置类中的可变属性。

如果代码使用常量标识符,则可以将常量更改为变量:
来自
#定义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.  
新增

#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 <代码>的常数文字。变量不适用于

案例
。代码需要重写

在算法或代码中,将常量更改为变量;“我想在单行道上走错路。”。我知道这意味着违反法律,冒着高速流量导致严重RTA的风险,但我需要知道怎么做。@ThomasMatthews它给出了错误,这一行的原因如上所述。为什么要将常量传递给函数?它们是常数…;-)传递数组时,应该有3个参数:指向数组的指针、数组中项目的大小或数量以及等待。。。。。阵列的容量(通常为常数)。:-)好吧,我买这个。它确实让我想起了自描述数据类型的一些优点,不过…;-)为什么使用宏而不是常量?