#include <iostream>
using namespace std;
class shape {
public:
virtual Sum()
{
cout << "sum in shape is " << a << endl;
}
public:
int a{5};
int b{6};
};
class circle : public shape {
public:
circle()
{
a = 20;
b = 30;
}
Sum() final
{
cout << "sum in circle is " << d << endl;
}
public:
int c{99};
int d{100};
};
shape create_shape()
{
return circle();
}
int main()
{
shape s = create_shape();
s.Sum();
return 0;
}
执行结果:
$ ./chlid_to_parent_obj.exe
sum in shape is 20
和预想的一样,变量赋值的确不能实现多态,但是可以看到a的值已经修改为20.