zoukankan      html  css  js  c++  java
  • 2015 Tencent 线上模拟测试题

    第一题  下面的程序的输出结果是:

    A. 134122

    B. 123412

    C. 14302012

    D. 143212

    #include <iostream>
    using namespace std;
    
    class Base
    {
    public:
    Base(int i){cout << i;} ~Base(){} }; class Base1:virtual public Base { public: Base1(int i, int j=0):Base(j){cout <<i;} ~Base1(){} }; class Base2:virtual public Base { public: Base2(int i, int j=0):Base(j){cout <<i;} ~Base2(){} }; class Derived:public Base2, public Base1 { public: Derived(int a, int b, int c, int d ):mem1(a), mem2(b), Base1(c), Base2(d), Base(a) {cout << b;} private: Base2 mem2; Base1 mem1; }; void _tmain(int argc, _TCHAR* argv[]) { Derived objD(1, 2, 3, 4); int i; cin >> i; }

    这一题考查了派生类的构造函数、多重继承和虚基类的概念。

    概念一:关于初始化,派生类在初始化时一定会调用基类的构造函数,除非基类有默认构造函数(无参数或者参数有默认值)。其一般形式为“DerivedClass(ParaList):BaseClass(ParaList){Initialization Statement}”;

    概念二:执行派生类构造函数的顺序为(析构函数与之相反),基类构造函数->子对象构造函数(多个子对象按照声明先后初始化)->派生类构造函数;

    概念三:关于多重继承,声明派生类时,基类的出现顺序决定了构造函数的调用顺序;派生类只负责对其直接基类进行初始化,间接基类则自有相应的直接基类去初始化,虚基类除外;

    概念四:关于虚基类,派生类不仅要对直接基类初始化,还要对虚基类进行初始化。C++保证了虚基类不会被多次初始化,且只会被派生类继承一次(避免成员重复);

    根据以上概念可以容易的得出正确答案,C。

    第二题  若数据元素序列 10,11,12,5,6,7,20,2,2 是采用下列排序算法之一得到的第二题排序后的结果,则该排序算法只能是

    A 冒泡排序

    B 选择排序

    C 二路归并排序

    D 插入排序

  • 相关阅读:
    综述:设计模式的分类及六大原则
    模板方法模式
    工厂模式三部曲之抽象工厂模式
    AI,DM,ML,PR的区别与联系
    delphi ADOCONNECTION异常拦截
    Delphi 10.2.3 精简版自动激活Embarcadero Delphi 10.2.3 v25.0.29899.2631 Lite v14.4
    Delphi使用TADOQuery的RowsAffected属性时需要注意的一个点
    delphi 新版内存表 FDMemTable
    delphi 中Adoquery ,在打开时能否让记录指针不移动? [问题点数:40分,结帖人microd]
    delphi循环校验数据集
  • 原文地址:https://www.cnblogs.com/tangshiguang/p/6735456.html
Copyright © 2011-2022 走看看