20140309 C++ using 野指针 返回变量首地址

1、C++中的using:http://blog.sina.com.cn/s/blog_61e904fd0100nuk3.html

  使用using恢复、改变被继承类中的访问权限文章来源地址https://www.yii666.com/article/754016.html文章来源地址:https://www.yii666.com/article/754016.html

2、野指针,没有指向的指针,与空指针的不同

3、函数指针:int (*func)(int);   指针函数:int * fun(int);

4、static_cast和reinterpret_cast的区别:共同点返回变量首地址网址:yii666.com

//static_cast和reinterpret_cast的区别主要在于多重继承,比如
#include<stdio.h>
class A { public: int m_a; };
class B { public: int m_b; };
class C : public A, public B {};
void main()
{ C c;
    printf("%p, %p, %p\r\n", &c, reinterpret_cast<B*>(&c), static_cast <B*>(&c));
}

20140309 C++ using   野指针  返回变量首地址

结果:前两个的输出值是相同的,最后一个则会在原基础上偏移4个字节,这是因为static_cast计算了父子类指针转换的偏移量,并将之转换到正确的地址(c里面有m_a,m_b,转换为B*指针后指到m_b处),而reinterpret_cast却不会做这一层转换。
  因此, 你需要谨慎使用 reinterpret_cast.

A占用4个字节
B占用4个字节
C占用四个字节

0x004BF764

0x004BF768文章地址https://www.yii666.com/article/754016.html网址:yii666.com<

5、cvReleaseImg(&img),仅仅将img赋值为NULL;http://blog.sina.com.cn/s/blog_a2f5b8790101b5js.html#commonComment

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png