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 的构造函数被调用
派生的构造函数调用
在多重继承的情况下,基类的构造函数总是以从左到右的派生顺序调用,而析构函数则以相反的顺序调用。