趋势科技的笔试
综合指导4.67K
1、#include
class A{
public:
A(){func(0);};
virtual void func(int data){printf("A1 :%dn",data);}
virtual void func(int data) const{printf("A2 :%dn",data);}
void func(char *str){printf("A3 %s)n",str);}
};
class B:public A{
public:
void func(){printf("B1 :%sn","");}
void func(int data){printf("B2 :%dn",data);}
void func(char *str){printf("B3 %s)n",str);}
};
int main()
{
A *pA;
B b;
const A *pcA;
pA=&b;
pA->func(1);
pA->func("test");
A()(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
void func(const int &t)
{
cout<
}
template
void func(const T&t)
{
cout<
}
int main()
{
func(10.3);
func(1000);
return 0;
}
程序运行结果:
10.3
1000
如果上述函数改为
include
void func(const int &t)
{
cout<
}
template
void func(const T&t)
{
cout<
}
int main()
{
func(10.3);
func(1000);
return 0;
}
则程序的运行结果为:
10.3
1100
如果使用函数的非模板形式,不能在前面加上template关键字。
3、
改错:
include
class klass
{
public:
klass(){}
private:
~klass(){}
void func(int n){
cout<<"klass!!"<
} public:
void test(){
func(100);
}
};
int main()
{
klass k;
();
return 0;
}
运行后程序显示:error C2248: ’klass::~klass’ : cannot access private member declared in class ’klass’
证明析构函数的属性必须为public。
但是,如果把klass k改为klass* pk; pk=new klass; pk->test();程序通过,但是klass不能释放
class A{
public:
A(){func(0);};
virtual void func(int data){printf("A1 :%dn",data);}
virtual void func(int data) const{printf("A2 :%dn",data);}
void func(char *str){printf("A3 %s)n",str);}
};
class B:public A{
public:
void func(){printf("B1 :%sn","");}
void func(int data){printf("B2 :%dn",data);}
void func(char *str){printf("B3 %s)n",str);}
};
int main()
{
A *pA;
B b;
const A *pcA;
pA=&b;
pA->func(1);
pA->func("test");
A()(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
void func(const int &t)
{
cout<
}
template
void func(const T&t)
{
cout<
}
int main()
{
func(10.3);
func(1000);
return 0;
}
程序运行结果:
10.3
1000
如果上述函数改为
include
void func(const int &t)
{
cout<
}
template
void func(const T&t)
{
cout<
}
int main()
{
func(10.3);
func(1000);
return 0;
}
则程序的运行结果为:
10.3
1100
如果使用函数的非模板形式,不能在前面加上template关键字。
3、
改错:
include
class klass
{
public:
klass(){}
private:
~klass(){}
void func(int n){
cout<<"klass!!"<
} public:
void test(){
func(100);
}
};
int main()
{
klass k;
();
return 0;
}
运行后程序显示:error C2248: ’klass::~klass’ : cannot access private member declared in class ’klass’
证明析构函数的属性必须为public。
但是,如果把klass k改为klass* pk; pk=new klass; pk->test();程序通过,但是klass不能释放
标签:笔试
-
求职时要学会诚实
“许小姐,你这是在浪费我们的时间,也是在浪费你自己的时间。你这样的行为对彼此都是一种不尊重,希望你以后再找工作的时候能学会诚实……”许娜恍惚地走在街上,脑中回荡着一个小时前那家公司HR经理对她说的话。三天前,许娜凭借着出色的简历和面试时的.“不俗”表现,...
-
被hr婉言拒绝,我1面面试没过
就是生怕kpmg会通知我去par面,天天手机不离手,朋友打电话来都按掉,用家里电话回,我等了一天又一天,我还是没有等到,我忍不住了,终于打电话给kpmg的hrjj,我问她,“我11月3日1面的,但是到现在还是没有收到par面通知,而且这次kpmg拒绝的话也不发拒绝信,是不是代表我1面没有过,...
-
6秘诀帮你养成最聪明的职场情商
俗话说“人往高处走,水往低处流”,我们都渴望前途无忧。但是在追求事业的道路上,却不是人人都能走得一帆风顺。这条路上潜伏着很多秘密杀手,让你一不小心就栽了跟头。下面悦己就帮你把这些秘密杀手挑出来,教你养成对付它们的6个Don‘t小法则,养成最聪明的职场情商,在...
-
几种面试备考以及考试过程中的心里问题
给人改变未来的力量考生在公务员面试时要做好心理准备,就首先能在心理上已经领先于竞争对手。但是要想做到在面试考试时保持正常心态、力争超常发挥,考生还需要在备考中多加注意,避免产生心理问题。下面中公教育专家将罗列几种面试备考以及考试过程中,容易产生的心...