include <iostream>
using namespace std;
using gg= long long;
int g=0;
class jk
{
public:
jk()
{
​ cout<<"jk已部署,序列="<<g<<endl;
​ g++;
}
jk(string q1)
{
​ jk2=q1;
​ cout<<"jk已部署,序列="<<g<<endl;
​ g++;
}
jk(jk &g)
{
​ jk2=g.jk2;
}
~jk()
{
​ cout<<"jk寄了"<<endl;
}
string rjk2()
{
return jk2;
}
string jk2;
private:
};

class fg
{
public:
jk a;
static int rt;
fg()
{
​ cout<<"fg部署,序列= "<<g<<endl;
​ g++;
}
fg(int a1,jk &b):fg1(a1),a(b)
{
​ cout<<"fg部署,序列= "<<g<<endl;
​ g++;
}
int rejk1()
{
return fg1;
}
string c();
~fg()
{
​ cout<<"fg寄了 "<<endl;
}
private:
int fg1;
};
void sd()
{
jk q("qwe");
fg s(2,q);
}
int main()
{
sd();
}

// jk已部署,序列=0
// fg部署,序列= 1
// fg寄了
// jk寄了
// jk寄了
隐式构造函数会避过自定义的fg()
{},无论{}是否存在内容;
此外,从函数内返回不调用构造函数,但使用除*,&外的手段传入函数就会自动调用构造函数。

此外的手法,无论是静态还是动态数组,都会调用自己的不传参的构造函数