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

<thead id="tzpj5"></thead>
  • <cite id="tzpj5"><listing id="tzpj5"></listing></cite>
    <strike id="tzpj5"><option id="tzpj5"><td id="tzpj5"></td></option></strike>

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

    思而思學(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)造對象 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);

    }

    熱門推薦

    最新文章