11.6 趋势科技的笔试题目

来源:互联网 发布:招聘异地淘宝客服 编辑:程序博客网 时间:2024/04/28 03:34
 

趋势科技的笔试:

 

1

#include <stdio.h>

 

class A{

public:

       A(){func(0);};

       virtual void func(int data){printf("A1 :%d/n",data);}

       virtual void func(int data) const{printf("A2 :%d/n",data);}

       void func(char *str){printf("A3 :(%s)/n",str);}

};

 

class B:public A{

public:

       void func(){printf("B1 :%s/n","");}

       void func(int data){printf("B2 :%d/n",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().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 <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;

}

 

 

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)

{

       cout<<t<<endl;

}

 

 

int main()

{

       func(10.3);

       func(1000);

 

       return 0;

}

 

则程序的运行结果为:

10.3

1100

 

如果使用函数的非模板形式,不能在前面加上template关键字。

 

3

改错:

#include <iostream.h>

 

class klass

{

public:

       klass(){}

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不能释放。

原创粉丝点击