📜  C++程序的输出|设置 1

📅  最后修改于: 2022-05-13 01:56:10.877000             🧑  作者: Mango

C++程序的输出|设置 1

预测以下 C++ 程序的输出。

问题 1

// Assume that integers take 4 bytes.
#include
  
using namespace std;   
  
class Test
{
  static int i;
  int j;
};
  
int Test::i;
  
int main()
{
    cout << sizeof(Test);
    return 0;
}

输出:4(整数大小)
静态数据成员不影响对象的大小。所以'i'不考虑在Test的大小中。此外,所有函数(静态和非静态)都不会影响大小。

问题2

#include
  
using namespace std;
class Base1 {
 public:
     Base1()
     { cout << " Base1's constructor called" << endl;  }
};
  
class Base2 {
 public:
     Base2()
     { cout << "Base2's constructor called" << endl;  }
};
  
class Derived: public Base1, public Base2 {
   public:
     Derived()
     {  cout << "Derived's constructor called" << endl;  }
};
  
int main()
{
   Derived d;
   return 0;
}

输出:
Base1 的构造函数被调用
Base2 的构造函数被调用
派生的构造函数调用

在多重继承的情况下,基类的构造函数总是以从左到右的派生顺序调用,而析构函数则以相反的顺序调用。