面试我爱编程C++面试

腾讯校招随笔

2018-04-11  本文已影响513人  linanwx

前言

提前批有两次电话一面,这里略过了。
首发于:https://www.jianshu.com/p/d5aa63a27172

一面

成都4月11日

下面是其中一道题目,请写出运行结果

#include <iostream>
using namespace std;

struct A{
    A(){
        local_var++;
    }
    virtual void func(){
        cout << "A" << endl;
    }
    static int local_var;
};

int A::local_var = 0;

struct B : A{
    B(){
        local_var+=2;
    }
    virtual void func(){
        cout << "B" << endl;
    }
};

int main(){
    A* a1 = new B[3]; 
    cout << a1[0].local_var << endl;
    a1->func();
    A a2 = a1[0];
    cout << a2.local_var << endl;
    a2.func();
    A a3;
    a3 = a1[0];
    cout << a3.local_var << endl;
    a3.func();
}

以下代码会出现什么问题。

#include <iostream>
using namespace std;

struct A{
    virtual void func1(){
        cout << a << endl;
    }
    void func2(){
        cout << a << endl;
    }
    void func3(){
        cout << "a" << endl;
    }
    int a;
};

int main(){
    A * a = (A*)malloc(sizeof(A));
    a->func1();
    a->func2();
    a->func3();
}

二面

成都4月13日

后续

4月20日收到腾讯的电话offer确认。

上一篇 下一篇

猜你喜欢

热点阅读