趋势科技的笔试题
1、#include
class A{
public:
A() {func(0);};
virtual void func(int data) {printf("A1 :%d",data);}
virtual void func(int data) const {printf("A2 :%d",data);}
void func(char *str) {printf("A3 :(%s)",str);}
};
class B:public A{
public:
void func() {printf("B1 :%s","");}
void func(int data) {printf("B2 :%d",data);}
void func(char *str) {printf("B3 :(%s)",str);}
};
int main()
{
A *pA;
B b;
const A *pcA;
pA=b;
pA->func(1);
pA->func("test");
A().func(1);
pcA=b;
pcA->func(2);
return 0;
}
程序运行的结果:
A1 :0
B2 :1
A3 :(test)
A1 :0
A1 :1
A2 :2
1) 基类的指针指向派生类对象:那么该指针只能够调用基类所定义的函数,但是如果该函
数为虚函数,则调用该派生类自己的成员函数。(B2 :1)
2) 如果以派生类的指针指向基类对象,则必须事先做明显的转型操作,但是这种做法很危
险。
2、#include
template
评论6
最新资源