What is object slicing?
c++, c++-faq, inheritance, object-slicing
Solution
"Slicing" is where you assign an object of a derived class to an instance of a base class, thereby losing part of the information - some of it is "sliced" away.
For example,
class A {
int foo;
};
class B : public A {
int bar;
};
So an object of type `B` has two data members, `foo` and `bar`.
Then if you were to write this:
B b;
A a = b;
Then the information in `b` about member `bar` is lost in `a`.
Problem
In C++, what is object slicing and when does it occur?