精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

艾默生軟件工程師筆試題

  1.考察虛繼承內(nèi)存體系

  class A

  {

  public:

  A() { cout<<"Construct A"<

  ~A() { cout<<"Destruct A"<

  void speak() { cout<<"A is speaking!"<

  };

  class B:public virtual A

  {

  public:

  B() { cout<<"Construct B"<

  ~B() { cout<<"Destruct B"<

  };

  class C:public virtual A

  {

  public:

  C() { cout<<"Constuct C"<

  ~C() { cout<<"Destruct C"<

  };

  class D:public B, public C

  {

  public:

  D(){ cout<<"Constsruct D"<

  ~D(){ cout<<"Destruct D"<

  };

  int main()

  {

  D *p = new D();

  p->speak();

  delete p;

  }

  輸出:

  Construct A

  Construct B

  Constuct C

  Constsruct D

  A is speaking!

  Destruct D

  Destruct C

  Destruct B

  Destruct A

  2.考察非虛析構(gòu)函數(shù)這道題

  class Parent

  {

  public:

  Parent(){cout<<"Parent construct"<

  ~Parent(){ cout<<"Parent destruct "<

  };

  class Child : public Parent

  {

  public:

  Child() { cout<<"Child construct "<

  ~Child() {cout<<"child destruct"<

  };

  int main()

  {

  Parent *p;

  Child *c = new Child();

  p = c;

  delete p; // 因?yàn)槲鰳?gòu)函數(shù)是非 virtual 的,故析構(gòu)的時(shí)候按照指針的類型進(jìn)行析構(gòu)

  }

  輸出:

  Parent construct

  Child Construct

  Parent destruct

  3.考察初始化列表的寫法

  class A

  {

  public:

  A(int x, int y, int z):a=x,b=y,c=z {} (1)

  A(int x, int y, int z):a(x),b(y),c(z){} (2)

  private:

  int a;

  int b;

  int c;

  };

  int main()

  {

  A a(1,2,3);

  }

  第 1 種寫法是錯(cuò)誤的,第 2 種正確。

  4.考察拷貝構(gòu)造函數(shù)和賦值的區(qū)別。

  class A

  {

  public:

  A() { cout<<"Construct A by default"<

  A(const A& a) { cout<<"consttuct A by copy"<

  A& operator =(const A& a) { cout<<"cosnt A by operator ="<

  ~A() { cout<<"Destruct A"<

  };

  int main()

  {

  A a;

  A b=a; //調(diào)用拷貝構(gòu)造函數(shù)

  A c(a); //調(diào)用拷貝構(gòu)造

  A d;

  d=a; //賦值

  }

  輸出:

  Construct A by default //構(gòu)造對象 a

  consttuct A by copy //拷貝構(gòu)造 b

  consttuct A by copy //拷貝構(gòu)造 c

  Construct A by default //構(gòu)造 a

  cosnt A by operator = //賦值 d=a

  Destruct A

  Destruct A

  Destruct A

  Destruct A

  5.考察函數(shù)指針

  voidfunc(char* a)

  {

  cout<

  }

  int main()

  {

  void (*fp)(char*); //填空處

  fp = func; //函數(shù)名func相當(dāng)于函數(shù)的地址,將其賦給函數(shù)指針fp

  char* s="helloc";

  fp(s);

  }

本文已影響6827
上一篇:安捷倫筆試真題 下一篇:ABB筆試真題

相關(guān)文章推薦

|||||