未用初始化列表时是否会构造成员对象

  • 代码
#include <iostream>
using namespace std;
class Member
{
public:
    Member()
    {
        age=0;
        cout << "construction Memer()\n";
    }
    Member(int age)
    {
        this->age=age;
        cout << "construction Member(int age)\n";
    }
    ~Member()
    {
        cout<<age<<"  destruct\n";
    }
    int age;
};
class Team
{
public:
    Team()
    {
        m = Member(120);
        cout << "construct Team\n";
    }
    Member m;
};
int main()
{
    Team t;
    return 0;
}
  • 输出结果
construction Memer()
construction Member(int age)
120  destruct
construct Team
120  destruct
  • 结论

可以看出初始化列表未赋值时,成员变量会调用默认构造函数。