C++经典面试题汇总

Posted wulei0630

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++经典面试题汇总相关的知识,希望对你有一定的参考价值。

1. 下面代码输出什么?为什么?(初始化列表)

#include<iostream>

using namespace std;

class Test
{
    int m_i;
    int m_j;
public:
    Test(int v): m_j(v), m_i(m_j)
    {
        
    }
    int getI()
    {
        return m_i;
    }
    int getJ()
    {
        return m_j;
    }
};

int main()
{
    Test t1(1);
    Test t2(2);
    
    cout << t1.getI() << " " << t1.getJ() << endl;
    cout << t2.getI() << " " << t2.getJ() << endl;
    
    return 0;
}

① 答案:

随机数 1

随机数 2

② 核心提示:

(1)成员变量的初始化顺序与声明顺序有关,与初始化列别顺序无关

 

2. 下面程序输出什么?为什么?(多态)

#include <iostream>

using namespace std;

class Base
{
public:
    virtual void func()
    {
        cout << "Base::func" << endl;
    }
};

class Child : public Base
{
public:
    void func()
    {
        cout << "Child::func" << endl;
    }
};

int main()
{
    Base* pb = new Base();
    pb->func();
    
    Child* pc = (Child*)pb;
    pc->func();
    
    delete pc;
    
    pb = new Child();
    pb->func();
    
    pc = (Child*)pb;
    pc->func();
    
    return 0;
}

① 答案:

Base::func
Base::func
Child::func
Child::func

② 核心提示:

(1)多态:根据实际的对象类型决定函数调用语句的具体调用目标。

 

以上是关于C++经典面试题汇总的主要内容,如果未能解决你的问题,请参考以下文章

今日头条校园招聘历年经典面试题汇总:C++研发岗

百度校园招聘历年经典面试题汇总:C++研发岗

腾讯校招历年经典面试汇总:C++研发岗

网易校园招聘历年经典面试题汇总:C++研发岗

最强阿里巴巴历年经典面试题汇总:C++研发岗

最强阿里巴巴历年经典面试题汇总:C++研发岗