淺談 c++中的 向上轉型
阿新 • • 發佈:2019-01-23
向上轉型:例
向上轉型是編譯器自動執行的,非常安全。
#include<iostream>
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<<animal->m_a<<endl;
system("pause");
return 0;
}
簡單來理解就是:
結果都為100; 相當於把dog->m_b=200;這一項給忽略了;#include<iostream> 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<<animal->m_a<<endl; system("pause"); return 0; }
向上轉型是編譯器自動執行的,非常安全。