zoukankan      html  css  js  c++  java
  • 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)多态:根据实际的对象类型决定函数调用语句的具体调用目标。

  • 相关阅读:
    3Sum
    Longest Common Prefix
    Integer to Roman
    Roman to Integer
    Container With Most Water
    String to Integer (atoi)
    Regular Expression Matching
    codeforces-873C. Strange Game On Matrix[模拟]
    hdu-5927 Auxiliary Set
    Codeforces-869 C. The Intriguing Obsession [组合数学]
  • 原文地址:https://www.cnblogs.com/wulei0630/p/9783632.html
Copyright © 2011-2022 走看看