以下程序如何评估以下程序?1.参数化构造函数如何求值?左到右 ?
ZA (int n)0 ---> 基类构造函数被调用。
ZA (int n)2 --> 这里的 m_i = 2 怎么样?
ZA (int n)0 ----> Zb 中定义的 ZA 成员变量的构造函数调用
ZA (int n)0
ZB (int n)2
#include <iostream>
using namespace std;
class ZA
{
public:
ZA(int n = 0) : m_i(n)
{
std::cout <<"ZA (int n)" <<m_i<<endl;
++m_i;
}
protected:
int m_i;
};
class ZB : public ZA
{
public:
ZB(int n = 5) : m_a(new ZA[2]), m_x(++m_i)
{
std::cout <<"ZB (int n)" <<m_i<<endl;
}
~ZB()
{
delete [] m_a;
}
private:
ZA m_x;
ZA *m_a;
};
int main(void)
{
ZB b;
std::cout << std::endl;
}