今天主要是写继承类如何重载父类函数,并调用继承函数。下面从实例出发介绍。
#include <iostream>
using namespace std;
class A
{
public:
A()
{
c = 0;
d = 0;
result = 0;
}
void getdata(int a, int b)
{
c = a + b;
d = a*b;
result = setdata(c, d);
}
int setdata(int a, int b)
{
return a + b;
}
int getResult()
{
return result;
}
private:
int c, d, result;
};
class B :public A
{
public:
int setdata(int a, int b)
{
return a*b;
}
};
int main()
{
A *a = new A();
B *b = new B();
int data1, data2;
data1 = 3;
data2 = 4;
int Aresult, Bresult;
Aresult = 0;
Bresult = 0;
a->getdata(data1, data2);
Aresult = a->getResult();
b->getdata(data1, data2);
Bresult = b->getResult();
delete a;
a = NULL;
delete b;
b = NULL;
cout << "Aresult:" << Aresult << endl;
cout << "Bresult:" << Bresult << endl;
return 1;
}
结果为 Aresult:19,Bresult:19。因为B这里调用的是A的int setdata(int a, int b)
而当将基类int setdata(int a, int b)改为virtual int setdata(int a, int b),那么结果就是Aresult:19,Bresult:84。因为B调用了自己的int setdata(int a, int b)函数
一般地,大型项目都是由多个人共同完成实现的,而新人容易不知所以然,因此今天特意举个实例供初学者学习。具体用到的原理不做解释,如类继承,virtual的使用,百度学习即可。