C/C++教程

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

本文主要是介绍什么是C++的对象切割?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

 

 

书本解释:

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

//基类

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++的对象切割?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!