关闭

C++不允许将int **转换为const int **

2216人阅读 评论(7) 收藏 举报

C++ Complains about Converting 'int **' to 'const int **'

Recently when I was switching a project from C to C++, I found that C++ compilers do not allow converting int ** to const int ** , even with explicit cast.

After searching on the web and thinking, I think the underlying reason is that C++ does not allow converting const T * to T * , unless const_cast is used. Let's assume that a  is of type const T ** , and b is of type T **. If we can assign the value of b to a , then we can make * b point to a const T variable by dereferencing a , without using const_cast . This violates the principles of C++.

One of the principles of C++ is that, if a programmer uses const_cast , he/she declares that the current conversion will do no harm to the programme; otherwise he/she may have not concerned about the possible danger brought by the current conversion, which is probably a bug. In the later case, the compiler must report an error to remind the programmer.

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

数字转换成字符串,int 转换成const char*

Question:将一个int类型转换成字符串。函数原型:const char* itoa(int val) 负数前面要添个负号,正数不用。 写了15min…… const char* itoa(int val) { char* s=(char*)malloc(35); ...
  • yuanjianchuan
  • yuanjianchuan
  • 2016-04-14 15:19
  • 842

variantt转int:char转换Variant?怎么转定义一个charx[]

问:在VC中,怎样把一个int转换为_variant_t类型是不是要在整型变量前加一个修饰符例如int i=;variant_t var;var=.?需要怎么... 答:int a=;variant_t var;var=(_variant_t)(long)a; 问:char*转换Variant?...
  • wangzhiyang925
  • wangzhiyang925
  • 2014-07-29 19:19
  • 734

char 转换成int的应用

这个问题,我想应该在很多地方就用得到。尤其是在计算大数的时候,大数,我们不能够用int,long等类型了,必须使用字符串来存储。 好了,那么,int转换成char我想应该很好理解,因为,int是4个字节的,char是1个字节。那么,多余的,被抛弃就成了。注意,抛弃的是高位。 #inclu...
  • cogbee
  • cogbee
  • 2014-03-16 23:00
  • 29204

CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)

一、Mat类型:矩阵类型,Matrix。     在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。    Mat有3个重要的方法:    ...
  • glb562000520
  • glb562000520
  • 2013-05-09 16:14
  • 5009

int和byte之间的转换

int型32位 byte型8位 例如:int类型:97 则二进制表示为:00000000 00000000 00000000 01100001   Java语言 /*将int转为低字节在前,高字节在后的byte数组 b[0] = 11111111(0xff) & 01100001 ...
  • qq_28468727
  • qq_28468727
  • 2016-09-11 01:06
  • 8986

C++ 常引用 const int &a 的作用和区别

首先回顾一下const常类型的作用:使形参在子函数中调用时成为一个常量来使用,既无法成为左值,无法修改形参的值。 引用&的作用:例如a=&b,那么表示a是b的别名,此时a和b的地址相同。在子函数中调用时,形参的改变就是实参的改变,不像C中需要用到指针来实现。 刚开始接触常...
  • u013828206
  • u013828206
  • 2014-03-26 20:55
  • 2807

将char字符转换成int整型,字符串与整型之间的相互转换

int 与字符之间的转换 int与字符串之间的转换
  • chen372901
  • chen372901
  • 2016-08-03 11:41
  • 9778

char与int等数据类型的强制转化

1.首先char与int都分为signed与unsigned类型,默认情况下都是signed类型。 2.从长字节数据类型转换为短字节数据类型,会产生截断: 如从4字节的int类型转换成1个字节的char类型,则取int数据的最低的一个字节,将这个字节的数据赋给char型数据,且是有符号的,即首位...
  • yinqiaohua
  • yinqiaohua
  • 2015-03-25 09:29
  • 8596

float和int相互转换

直接强制将float强制转换成int;最后一位丢失精度则 +0.5处理 转:http://blog.csdn.net/slshelly/article/details/7260284 串行通讯是以字节为单位进行传送的,对于浮点数和整型数都需要进行转换字节数组才能进...
  • lin111000713
  • lin111000713
  • 2014-08-23 20:01
  • 4306

浅析 java中 Int 与 String 互相转换问题

int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -&g...
  • u012422446
  • u012422446
  • 2016-03-22 14:04
  • 903
    个人资料
    • 访问:254016次
    • 积分:3508
    • 等级:
    • 排名:第10992名
    • 原创:91篇
    • 转载:5篇
    • 译文:1篇
    • 评论:168条
    最新评论