• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c++基类与派生类之间的转换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 class Box
 5 {
 6 public:
 7     void setWidth(double width){
 8         this->width=width;
 9     }
10     void setHieght(double height){
11         this->height=height;
12     }
13     void getWidth(){
14         cout<<width<<endl;
15     }
16 private:
17     double width,height;
18 };
19 class ColorBox : public Box{
20 public:
21     void setColor(string color){
22         this->color=color;
23         
24     }
25     void getColor(){
26         cout <<color<<endl;
27     }
28 
29 private:
30     string color;
31 };
32 int main(){
33     ColorBox colorbox;
34     Box  box;
35     colorbox.setColor("red");
36     colorbox.setHieght(10);
37     colorbox.setWidth(10);
38     colorbox.getColor();
39     colorbox.getWidth();
40     box=colorbox;
41     box.getWidth();
42     //使用指针
43     Box *ptr;
44     ptr=&colorbox;
45     cout<<ptr<<endl<<&box<<endl;
46     ptr->getWidth();
47     Box &r1=box;
48 
49     //r1和box共享同一段存储单元。也可以用子类对象初始化基类的引用变量
50     //r1和指针类型不同,box 和box*
51     r1.getWidth();
52     Box &r2=colorbox;
53     //派生类对象可以向基类对象的引用进行赋值或初始化
54     //但是不能调用子类的数据成员,此时基类引用并不是派生类对象的别名,也不与派生类共享同一段存储单元。
55     //它只是派生类中基类部分的别名,基类引用与派生类中基类部分共享同一段存储单元。0027F868
56     //0027F850
57     r2.getWidth();
58     cout<<&r2<<endl<<&box<<endl;
59 
60     return 0;
61 }

基类与派生类之间的转换,如果基类的对象想要访问子类的数据成员函数就要,去向下转型。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Object-C定时器,封装GCD定时器的必要性!!!(一)发布时间:2022-07-18
下一篇:
C#正则表达式学习笔记(一)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap