浅谈 c++中的 向上转型


向上转型:例
#include
using namespace std;

class Animal
{
public:
	int m_a;
};

class Dog:public Animal//公有继承
{
public:
	int m_b;
};


int main()
{
Animal * animal=new Dog();
animal->m_a=100;
cout<m_a<
简单来理解就是:
#include
using namespace std;

class Animal{
public:
	int m_a;
};

class Dog:public Animal
{
public:
	int m_b;
};

int main()
{
Dog * dog=new Dog();
dog->m_a=100;
dog->m_b=200;
Animal * animal=dog;
cout<m_a<
结果都为100;

相当于把dog->m_b=200;这一项给忽略了;

向上转型是编译器自动执行的,非常安全。

你可能感兴趣的:(浅谈 c++中的 向上转型)