Questions tagged «const»

编程中的常量是定义,其值在程序执行期间是固定的。例如,大多数语言中的文字都是常量。在引用透明的编程样式中,所有定义都是常量。const限定的数据存储区(对象,字段,变量,参数)是“永不改变”的区域,因此可以进行额外的代码生成器优化和对程序正确性的额外静态检查。

2
我想将新的segmentId(具有相同的名称)添加到映射数组中,但具有不同的elementId但具有相同的方法
以下是MapperInterface.php 我试图弄清楚如何在const中添加if-else语句。映射数组。像这样: if (LIN02 == “VN”) o Treat LIN03 as the SKU · else if (LIN04 == “VN”) o Treat LIN05 as the SKU <?php declare(strict_types=1); namespace Direct\OrderUpdate\Api; use Direct\OrderUpdate\Api\OrderUpdateInterface; /** * Interface MapperInterface * Translates parsed edi file data to a \Direct\OrderUpdate\Api\OrderUpdateInterface * @package Direct\OrderUpdate\Api */ interface MapperInterface { …
14 php  arrays  mapping  const 

2
如何快速评估const expr
我一直在尝试在编译时求值的const表达式。但是我玩了一个在编译时执行起来似乎很快的示例。 #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main () { long int res = fib(45); std::cout << res; return 0; } 当我运行此代码时,大约需要7秒钟才能运行。到目前为止,一切都很好。但是当我切换long int res = fib(45)到const long int res = fib(45)它时,甚至不需要一秒钟。据我了解,它是在编译时评估的。 但是编译大约需要0.3秒 编译器如何如此迅速地进行评估,但是在运行时却要花费更多的时间?我正在使用gcc 5.4.0。
13 c++  const  constexpr 


2
C中的const限定词和C ++中的const限定词有什么区别?
我找到了用户R.的评论: C和C ++语言不同。特别地,C const与C ++无关const。 我知道,constC中的const限定符和C ++中的限定符之间的区别是其默认链接。 const在C ++中,在命名空间范围内使用限定符声明的对象具有内部链接,而在C中,const在全局范围内声明带有限定符的对象(static在之前没有限定符const)具有外部链接。 但是在C和C ++语言之间,它们又有何不同?我认为两种语言在概念和目的上都具有相同的含义。 我的问题: C中的const限定词和C ++中的const限定词有什么区别? “ const”在C和C ++中有何不同的答案?不要在限定词的上下文中指出C和C ++语言之间的确切差异const。只有您不能或只能使用某种语言来做。

1
如何防止修改数组数据?
说我有一个看起来像这样的类(这只是一个例子): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = 14; } ~A() { delete[] ptr; } }; 该const在拷贝构造函数和两个doNotChangeMyData功能让这个ptr不能改变的; 但是,这仍然允许我修改指向的数组的内容ptr。 有没有一种方法可以防止仅ptr在const实例中更改数组的内容,而不能“小心”(或远离原始指针)? 我知道我可以做类似的事情 void …
9 c++  const 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.