我的小例子:
#include
using namespace std;
class A{
private:
int numA;
public:
A();
virtual void prt(); //看到virtual function就要想到要使用多态机制了!
};
A::A(){
cout << "Construct in A" << endl;
}
void A::prt(){ //virtual function在定义体的外部实现的时候,不要加virtual关键字
cout << "prt in A" << endl;
}
class B : public A{
private:
int numB;
public:
B();
void prt();
};
B::B() : A(){
cout << "Construct in B" << endl;
}
void B::prt(){
cout << "prt in B" << endl;
}
int main()
{
A *arryA = new A();
A *arryB = new B();
arryA->prt();
arryB->prt(); //使用多态机制
arryB->A::prt(); //不使用多态机制
delete arryA;
delete arryB;
return 0;
}
C++中的虚函数和多态的关系
最新推荐文章于 2024-12-22 11:29:09 发布