请问cv-qualification是什么含义?

[复制链接]
查看11 | 回复2 | 2021-1-29 05:13:14 | 显示全部楼层 |阅读模式
在dynamic_cast一段,是将当从继承类指针cast到基类指针时
Inboththepointerandreferencecases,theprogramisill-formedifcv2hasgreatercv-qualificationthancv1orifBisaninaccessibleorambiguousbaseclassofD.
谁能帮我举个例子说明一下什么叫做greatercvqualification看有人说c=constv=volatile。那么是否是说:code=c++classB{};classD:publicB{};volatileD*v;dynamic_castB*(v)/code就是触犯了这个规则呢?
另外inaccessibleorambiguousbaseclass是在什么情况下出现的呢?

回复

使用道具 举报

千问 | 2021-1-29 05:13:14 | 显示全部楼层
cv就是那个意思。
inaccessible:如果你没有权限访问一个类的private成员,也就没有权限将它的指针转换成它的private基类的指针
ambiguous:
classA{...};classB:publicA{...};classC:publicA{...};classD:publicB,publicC{...};
转换D*==A*就是ambiguous的
gogdizzy (平花星星#我的爱像天使守护你) 在 ta 的帖子中提到:在dynamic_cast一段,是将当从继承类指针cast到基类指针时Inboththepointerandreferencecases,theprogramisill-formedifcv2hasgreatercv-qualificationthancv1orifBisaninaccessibleorambiguousbaseclassofD.谁能帮我举个例子说明一下什么叫做greatercvqualification看有人说c=constv=volatile。那么是否是说:code=c++classB{};classD:publicB{};...........................

回复

使用道具 举报

千问 | 2021-1-29 05:13:14 | 显示全部楼层
谢谢,懂了
vonNeumann (冯·诺伊曼|Farewell,PKU) 在 ta 的帖子中提到:cv就是那个意思。inaccessible:如果你没有权限访问一个类的private成员,也就没有权限将它的指针转换成它的private基类的指针ambiguous:classA{...};classB:publicA{...};classC:publicA{...};classD:publicB,publicC{...};转换D*==A*就是ambiguous的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行