C++中的继承与多态是比较重要的一点,大致来讲解一下继承与多态的特点。继承是子类运用基类的成员以及成员函数,继承的方式分为public,protected以及private,今天主要讲解的是多态,多态是基类函数必有virtual。且是父类的指针指向子类的对象,例如:
#include <iostream>
#include <string>
using namespace std;
//
class A
{
public:
A()
{
cout << "A()" << endl;
}
~A()
{
cout << "~A()" << endl;
}
virtual void fun1()
{
cout << "A::fun1()" << endl;
}
virtual void fun2()
{
cout << "A::fun2()" << endl;
}
int a;
};
class A1:public A
{
public:
A1()
{
cout << "A1()" << endl;
}
~A1()
{
cout << "~A1()" << endl;
}
virtual void fun1()
{
cout << "A1::fun1()" << endl;
}
void fun2()
{
cout << "A1::fun2()" << endl;
}
int a1;
};
void show(A *pb)
{
pb->fun1();
}
int main()
{
A a;
A1 a1;
show(&a1);
/*a1.fun1();*/
/*cout << sizeof(a1) <<endl;*/
getchar();
return 0;
}
show 函数中调用父类的指针将会产生父类的函数,调用子类的指针就将会产生子类的函数,这就是多态。
本文出自 “局部和static变量” 博客,请务必保留此出处http://10810512.blog.51cto.com/10800512/1754279
原文地址:http://10810512.blog.51cto.com/10800512/1754279