ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

什么是C++的对象切割?

2022-03-21 14:33:05  阅读:174  来源: 互联网

标签:切割 对象 基类 C++ int 派生类 拷贝 赋值


我:将派生类对象的值赋值给基类对象,那么只会将将派生类从基类继承到的属性字段的值赋值给基类的对应属性,专属于派生类的值则不会被拷贝,这就叫做对象切割。

 

 

书本解释:

如果把派生类的对象赋给基类对象,那么前者中与基类对应的那一部分内容,就会拷贝到后者,而前者中所特有的内容则不会得到拷贝,这就叫做对象切割。他意味着基类对象只能访问基类的成员,而且相当于将基类成员同派生类成员相互分离

//基类

class base

{

  public:

         int i,j;

}

//派生类

class dervived:public base

{

  public:

         int k;

}

//赋值

int main()

{

  base b;

       derived d;

  b=d;

  return 0;

}

在main函数中,对象b有 i,j两个字段,对象d具有 i,j,k3个字段,赋值操作只会把i,j两个值拷贝给b,而不会拷贝k,这就使得对象d发生了切割。

标签:切割,对象,基类,C++,int,派生类,拷贝,赋值
来源: https://www.cnblogs.com/hhy-2216/p/16034551.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有