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