文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>常见错误33: 指向基类类型指针的指针在类型转换中的认识误区----读书笔记《c++...

常见错误33: 指向基类类型指针的指针在类型转换中的认识误区----读书笔记《c++...

时间:2010-08-11  来源:lzueclipse

D1 d1;

D1 *d1p = &d1;//没问题

B **ppb1 = &d1p;//编译期错误

D2 *d2p;

B **ppb2 = &d2p;//编译期错误

*ppb2 = *ppb1;//现在d2p指向一个D1类型的对象了!!!!

是不是看起来很眼熟?

和常见错误32中的常量性引入了多一级后就不能再保持一样。

1)指向派生类的指针皆为(is-a)指向以public方式继承的基类的指针;

2)指向派生类的指针的指针却不是指向以public方式继承的基类的指针的指针。

妈的,太拗口了,理解就行!

和讨论常量性的例子类似,这种会引发错误的记过乍看并无不妥。

void doBs(B *bs[], B *pb) {

    for(int i = 0; bs[i]; ++i)

        if(somecondition(bs[i], pb))

            bs[i] = pb;//大事不妙

}

//…

extern D1 *array[];

D2 *aD2 = getMeAD2();

doBs((B**)array, aD2);//很危险!!!

安全的设计会用标准库中的容器。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载