首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

基类和派生类指针有关问题

2012-09-22 
基类和派生类指针问题classA 基类 classB 派生类C/C++ codeclassB obj// 第一种classA* p1 (classA*)(&

基类和派生类指针问题
classA 基类 classB 派生类

C/C++ code
classB obj;// 第一种classA* p1 = (classA*)(&obj);//第二种classA* p2 = &((classA)obj);


p1和p2为啥不相等?

猜测第二种是构造了一个临时classA对象,不晓得是不是这样

大家的看法呢?

[解决办法]
你猜对了。
[解决办法]
C/C++ code
classB obj;// 第一种classA* p1 = (classA*)(&obj); //赋值兼容,子类指针或引用可以隐式转换为父类的指针或引用(只针对公有继承)//第二种classA* p2 = &((classA)obj); //(classA)obj 等价于classA((classA const&)(obj)),会生成一个临时对象 

热点排行