亚洲福利精品久久久久91|中文字幕乱码视频网|在线播放国产精品一区二区|亚洲成AV人片女在线观看

  • <label id="nsftt"></label>

          <bdo id="nsftt"></bdo>
              <object id="nsftt"><tt id="nsftt"><pre id="nsftt"></pre></tt></object>

              艾默生軟件工程師筆試題和面試題答案

              思而思學(xué)網(wǎng)

              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)造對(duì)象 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);

              }

              熱門推薦

              最新文章