2015 Tencentオンラインシミュレーションテスト問題
1555 ワード
第1題の次のプログラムの出力結果は:
A. 134122
B. 123412
C. 14302012
D. 143212
この問題は派生クラスの構造関数,多重継承,虚基クラスの概念を調べた.
概念1:初期化について、派生クラスは初期化時に必ずベースクラスのコンストラクション関数を呼び出します.ベースクラスにデフォルトコンストラクション関数(パラメータなしまたはパラメータにデフォルト値がある場合)がない限り.その一般的な形式は「DelivedClass(ParaList):BaseClass(ParaList){Initialization Statement}」である.
概念2:派生クラス構造関数を実行する順序は(構造関数とは反対)、ベースクラス構造関数->サブオブジェクト構造関数(複数のサブオブジェクトが宣言に従って前後して初期化)->派生クラス構造関数である.
概念3:多重継承について、派生クラスを宣言する際、ベースクラスの出現順序は構造関数の呼び出し順序を決定する.派生クラスは直接ベースクラスを初期化するだけで、間接ベースクラスは相応の直接ベースクラスを持って初期化し、虚ベースクラスを除く.
概念4:ダミーベースクラスについては,派生クラスは直接ベースクラスのみならず,ダミーベースクラスも初期化する.C++は、ダミーベースクラスが複数回初期化されず、派生クラスによって一度だけ継承されることを保証する(メンバーの重複を避ける).
以上の概念に基づいて、正しい答えを簡単に出すことができます.
第2題データ要素シーケンス10,11,12,5,6,7,20,2が以下のソートアルゴリズムのいずれかを用いて得られた第2題ソート後の結果であれば、このソートアルゴリズムは
A発泡ソート
B選択ソート
C 2ウェイ集計ソート
D挿入ソート
未完待機.
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;
}
この問題は派生クラスの構造関数,多重継承,虚基クラスの概念を調べた.
概念1:初期化について、派生クラスは初期化時に必ずベースクラスのコンストラクション関数を呼び出します.ベースクラスにデフォルトコンストラクション関数(パラメータなしまたはパラメータにデフォルト値がある場合)がない限り.その一般的な形式は「DelivedClass(ParaList):BaseClass(ParaList){Initialization Statement}」である.
概念2:派生クラス構造関数を実行する順序は(構造関数とは反対)、ベースクラス構造関数->サブオブジェクト構造関数(複数のサブオブジェクトが宣言に従って前後して初期化)->派生クラス構造関数である.
概念3:多重継承について、派生クラスを宣言する際、ベースクラスの出現順序は構造関数の呼び出し順序を決定する.派生クラスは直接ベースクラスを初期化するだけで、間接ベースクラスは相応の直接ベースクラスを持って初期化し、虚ベースクラスを除く.
概念4:ダミーベースクラスについては,派生クラスは直接ベースクラスのみならず,ダミーベースクラスも初期化する.C++は、ダミーベースクラスが複数回初期化されず、派生クラスによって一度だけ継承されることを保証する(メンバーの重複を避ける).
以上の概念に基づいて、正しい答えを簡単に出すことができます.
第2題データ要素シーケンス10,11,12,5,6,7,20,2が以下のソートアルゴリズムのいずれかを用いて得られた第2題ソート後の結果であれば、このソートアルゴリズムは
A発泡ソート
B選択ソート
C 2ウェイ集計ソート
D挿入ソート
未完待機.