c++-const int & operator[ ](int) const;

问题描述

const int & operator[ ](int) const;

这是一个在类里面定义的操作符重载的声明,想问这两个const有什么区别,感觉没有什么区别

解决方案

前面的const表示返回值是常数,后面的const表示这个函数本身不能修改成员变量。

解决方案二:

int QString::size () const

时间: 2024-09-24 09:17:47

c++-const int & operator[ ](int) const;的相关文章

c++ virtual const T& Entry(int index) const;

问题描述 c++ virtual const T& Entry(int index) const: 为什么有两个const,分别代表什么 c++ virtual const T& Entry(int index) const: 解决方案 第一个const说的是返回值,返回的是一个常量引用,不能修改; 后一个const是表示this指针指向的是const, 表明该函数不会改成员函数的值!该函数可以被常量对象访问(const). 解决方案二: 第一个const代表返回类型是const类型.为什

int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别

 加有const关键字的几种情况的辨析 const修饰的代码 含义(特点) 等价性 int *p = # 1.       可以读自己 2.       可以通过*p改自己 3.       可以通过p = &data来看别人 权限最大 cons int *p = # 1.const放在左边意味着指向的是常量,这个常量不可以修改, 2.p = &data; (地址可以修改) 3.*p = 30;(这个时候是错误的) 这两者等价(应用:查看别人的账户) i

c++-C++中指针声明时,int* p=0跟int *p=0哪个比较好?为什么?

问题描述 C++中指针声明时,int* p=0跟int *p=0哪个比较好?为什么? 新手学习C++时候,发现有些书写 int* p=0; 有些书写: int *p=0; 这两个有区别吗?区别在哪里?为什么会有两种写法? 还有下面的两种有区别吗?区别在哪里? int* const p=0; int const *p=0; 解决方案 第一个问题,这是定义一个int* p指针变量,(int p)<--->(int p) 这两种是等价,编译器会处理中间的空白符问题.第二个问题,int *const

c++-为什么 const 和非 const 的汇编代码一样,const 的却能保证不被修改呢?

问题描述 为什么 const 和非 const 的汇编代码一样,const 的却能保证不被修改呢? <C++ Primer>第五版,中文版.145 页. const int i = 42;//int i = 42; cout << i << endl; const int *p = &i; *const_cast<int *>(p) = 0; cout << i << endl; const int i = 42; 与 int

c++-关于析构函数的问题:为什么将int* 赋值给含有int* 变量的class时会调用析构函数?

问题描述 关于析构函数的问题:为什么将int* 赋值给含有int* 变量的class时会调用析构函数? 下面的代码: #include using namespace std; template class MyContainer { public: MyContainer(){ a = new T[n]; } MyContainer(T* b) :MyContainer() { for (int i = 0; i < n; i++) a[i] = b[i]; } MyContainer(con

c++-C语言中 int n = xx; 与 int n; n = xx; 这两种定义方式有什么不同?

问题描述 C语言中 int n = xx; 与 int n; n = xx; 这两种定义方式有什么不同? C语言中 int n = xx; 与 int n; n = xx; 这两种定义方式有什么不同? 解决方案 对于int等简单变量,建议给初始值,这不消耗cpu执行,又能确保程序正确,何乐不为? 解决方案二: 第一种是定义int变量同时赋予该变量初值 第二种是定义变量后,再赋初值 解决方案三: 应该是没有运行上的不同. 解决方案四: 比如 int n = xx; int a[n]; 与 int

求32位机器上unsigned int的最大值及int的最大值的解决方法_C 语言

复制代码 代码如下: #include <stdio.h>int main(int argc, char *argv[]){ unsigned int max_int = 0-1; printf("The max value of unsigned int on 32 machine: %u/n", max_int);} 复制代码 代码如下: #include <stdio.h>int main(int argc, char *argv[]){ unsigned

public int getKeyCode(int gameAction) 与 public int getGameAction(int keyCode)的区别

区别 一个MIDlet应用程序通过调用Canvas方法来探测哪些键盘代码映射到运行的应用程序中的抽象游戏动作:public static int getGameAction(int keyCode); Canvas类定义抽象游戏动作集:UP.DOWN.LEFT.RIGHT.FIRE等等. 游戏开发者应该知道MIDP 1.0规范中的一个问题.这个类定义了转化键盘代码到游戏动作的方法,同样也定义了转化游戏动作到键盘代码的方法.public int getGameAction(int keyCode)

c++-const int a=10; int *p =(int *)(&amp;amp;amp;a);

问题描述 const int a=10; int *p =(int *)(&a); #include using namespace std ; int main () { const int a=10; int *p =(int *)(&a);//运行正常 为什么 int *p = &a 报错 cannot convert from 'const int *' to 'int *' 解决方案 因为是const int *,传给int *必须类型转换.之所以有这样的规定是为了防止程