趋势科技的笔试
1、#include <stdio.h>
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: qzm4
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");
qzm4
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) qzm4
如果以派生类的指针指向基类对象,则必须事先做明显的转型操作,但是这种做法很危险。
面试网
2、 面试网
- include <iostream.h>
template <typename T> 求职信息
void func(const int &t) 求职面试
{
cout<<t+100<<endl;
qzm4
} 面试网
template<typename T> qzm4
void func(const T&t) qzm4
{
礼仪
cout<<t<<endl;
求职信息
} qzm4
int main() 面试问题
{ 求职面试
func(10.3);
func(1000);
return 0;
礼仪
}
面试网
程序运行结果:
10.3 求职信息
1000 礼仪
如果上述函数改为
- include <iostream.h>
void func(const int &t) 礼仪
{ 面试问题
cout<<t+100<<endl; 面试问题
}
template<typename T> 求职面试
void func(const T&t)
qzm4
{
礼仪
cout<<t<<endl; 求职面试
}
int main()
面试问题
{
面试问题
func(10.3);
qzm4
func(1000); 面试网
return 0; 求职信息
} 求职面试
则程序的运行结果为:
10.3
求职面试
1100
面试网
如果使用函数的非模板形式,不能在前面加上template关键字。 面试网
3、
求职信息
改错:
qzm4
- include <iostream.h>
class klass
{ qzm4
public: 面试网
klass(){}
private:
礼仪
~klass(){} qzm4
void func(int n){ qzm4
cout<<"klass!!"<<endl;
} public:
void test(){ 求职信息
func(100); 礼仪
} 面试网
}; 面试网
int main()
{
klass k; 求职信息
k.test(); qzm4
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不能释放
求职信息
声明:趋势科技的笔试来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!