#include <iostream>
struct A
{
A(){std::cout<<"A()"<<std::endl;}
};
template<typename T>
struct B
{
A a;
T b;
B(){std::cout<<"B()"<<std::endl;}
};
int main()
{
B<B<B<int> > > Test;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
调用构造函数的方法是
A()
A()
A()
B()
B()
B()
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样.我以为这将是ABABA B.你能解释一下为什么吗?