constants相关内容

常量和非常量运算符重载

我有一个我很困惑的话题,我需要详细说明.它是一个 const 版本和一个非常量版本的运算符重载. //非常量双 &operator[](int idx) {if (idx = 0) {返回数据[idx];}抛出边界错误();} 我知道这个 lambda 函数接受一个索引并检查其有效性,然后返回类中数组数据的索引.还有一个函数具有相同的主体但函数调用为 const d ..
发布时间:2022-01-23 23:19:44 C/C++开发

什么是常数参考?(不是对常量的引用)

一个非常理论的问题...为什么常量引用的行为方式与常量指针不同,以便我可以实际更改它们指向的对象?它们真的看起来像是另一个简单的变量声明.我为什么要使用它们?这是我运行的一个简短示例,它编译并运行没有错误: int main (){诠释我=0;整数 y=1;int&const icr=i;icr=y;//可以改变它指向的对象,所以它不像一个 const 指针...icr=99;//可以分配另一个 ..
发布时间:2022-01-23 23:18:55 C/C++开发

返回对对象的 const 引用而不是副本

在重构一些代码时,我遇到了一些返回 std::string 的 getter 方法.例如这样的事情: 类 foo{私人的:标准::字符串名称_;上市:标准::字符串名称(){返回名称_;}}; 当然,getter 会更好地返回 const std::string&?当前方法正在返回一个效率不高的副本.返回一个 const 引用会导致任何问题吗? 解决方案 这可能导致问题的唯一方法是调用 ..
发布时间:2022-01-23 23:18:48 C/C++开发

阅读复杂的 const 声明的简单规则?

对于阅读复杂的指针声明,有 左右规则. 但是这条规则并没有提到如何阅读const修饰符. 例如在一个简单的指针声明中,const 可以通过多种方式应用: char *buffer;//指向非常量内存的非常量指针常量字符*缓冲区;//指向 const 内存的非 const 指针字符常量 *缓冲区;//等价于之前的声明字符 * 常量缓冲区 = {0};//指向非常量内存的 const 指 ..
发布时间:2022-01-23 23:18:21 C/C++开发

C++“错误:传递'const std::map<int, std::basic_string<char>>'作为......的“这个"论点

使用以下代码(为简洁起见): 颜色.h: 类颜色{上市:颜色();枚举颜色类型 {黑色,蓝色,绿色,青色,红色,洋红色、棕色、浅灰色、无色};颜色类型 getColorType();无效 setColorType(colorType cColortype);字符串 getColorText() 常量;私人的:颜色类型 cColortype = nocolor;地图颜色 = ..
发布时间:2022-01-23 23:18:02 C/C++开发

为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

当我们在以下头文件中有原型时,我们的静态分析工具会抱怨“返回类型上无用的类型限定符": const int foo(); 我们这样定义它是因为函数返回一个永远不会改变的常量,认为使用 const 后 API 看起来更清晰. 为了清楚起见,我觉得这类似于将全局变量显式初始化为零,尽管 C 标准已经声明如果未显式初始化所有全局变量都将初始化为零.归根结底,这真的无关紧要.(但静态分析工具并没 ..
发布时间:2022-01-23 23:17:46 其他开发

如何在 Objective-C 中使用 Swift 结构

我有一个存储应用程序常量的结构,如下所示: 结构常数 {静态让 ParseApplicationId = "xxx"静态让 ParseClientKey = "xxx"静态变量 AppGreenColor: UIColor {返回 UIColor(hexString: "67B632")}} 这些常量可以通过调用 Constant.ParseClientKey 在 Swift 代码中使用.但在 ..
发布时间:2022-01-23 23:17:26 移动开发

如何选择用常量填充的多行?

在 SQL 语句中选择常量而不引用表是完全合法的: 选择 1、2、3 后者返回的结果集是包含值的单行.我想知道是否有一种方法可以使用常量表达式一次选择多行,类似于: SELECT ((1, 2, 3), (4, 5, 6), (7, 8, 9)) 我想要类似上面的东西,它可以工作并返回一个包含 3 行和 3 列的结果集. 解决方案 SELECT 1, 2, 3联合所有选择 4、5、 ..
发布时间:2022-01-23 23:17:16 其他开发

C++ 常量引用生命周期(容器适配器)

我的代码如下所示: 类 T {};类容器{const T &first, T &second;容器(const T&first, const T & second);};类适配器:T {};容器(适配器(),适配器()); 我认为常量引用的生命周期就是容器的生命周期.但是,如果不是这样,适配器对象在容器创建后被销毁,留下悬空引用. 什么是正确的生命周期? 适配器临时对象的堆栈范围是 ..
发布时间:2022-01-23 23:16:18 C/C++开发

调用 const 函数而不是其非 const 版本

为了我的目的,我尝试包装类似于 Qt 的共享数据指针的东西,经过测试,我发现应该调用 const 函数时,选择了它的非 const 版本. 我正在使用 C++0x 选项进行编译,这是一个最小的代码: 结构数据{int x() 常量 {返回 1;}};模板结构容器{容器() {ptr = 新 T();}T&操作员*() {puts("非常量数据指针");返回 *ptr;}T * 运算 ..

const 指针的 C++ typedef 解释

首先,示例代码: 案例一: typedef char* 字符;typedef CHARS 常量 CPTR;//指向字符的常量指针 文字替换 CHARS 变为: typedef char* 常量 CPTR;//仍然是一个指向字符的常量指针 案例 2: typedef char* 字符;typedef 常量字符 CPTR;//指向字符的常量指针 文字替换 CHARS 变为: typ ..
发布时间:2022-01-23 23:16:01 C/C++开发

这里的 const 修饰符不是不必要的吗?

“Effective C++"第 3 条说“尽可能使用 const",并给出了如下示例: const Rational operator*(const Rational& lhs,const 理性&右); 为了防止客户犯下这样的暴行: 有理 a, b, c;...(a * b) = c;//在 a*b! 的结果上调用 operator= 但是函数的非引用返回值不是已经是右值了吗?那么为什么 ..
发布时间:2022-01-23 23:15:36 C/C++开发

C/C++ 更改 const 的值

我有一篇文章,但我把它弄丢了.它展示并描述了一些人们应该小心的 C/C++ 技巧.其中一个对我很感兴趣,但现在我正在尝试复制它,我无法将它编译. 这个概念是可以在 C/C++ 中意外更改 const 的值 原来是这样的: const int a = 3;//我保证我不会改变常量 int *ptr_to_a = &a;//我仍然保证我不会改变诠释*ptr;ptr = ptr_to_a;(* ..
发布时间:2022-01-23 23:15:21 C/C++开发

无法在 C 中释放 const 指针

如何释放 const char*?我使用 malloc 分配了新内存,当我试图释放它时,我总是收到错误“不兼容的指针类型" 导致这种情况的代码类似于: char* name="阿诺德";const char* str=(const char*)malloc(strlen(name)+1);自由(str);//这里出错 解决方案 有几个人发布了正确的答案,但出于某种原因,他们一直在删除它 ..
发布时间:2022-01-23 23:15:14 其他开发

为什么常量约束结构实例而不是类实例的属性?

当我尝试更改 byValueObj 实例的 ID 属性时,我收到一个错误,告诉我我无法分配给常量的属性,即使属性是一个变量.但是,我可以在类实例上做到这一点.我有点知道它可能与按值和按引用机制有关.但我对它的认识不是很清楚和正确.有人可以为我解释一下吗?谢谢. struct CreatorValue{变量 ID = 2201}类 CreatorRefer{变量 ID = 2203}让 byVal ..
发布时间:2022-01-23 23:14:55 移动开发