系统运输
#include stdio.h
#include stdlib.h
using namespace std;
/*
a1类对象成员变量的默认值;
*//B1初始值列std:initializer_list
* B2使用初始值列initializer_list
*
*
*/
class Hello{
char* hello=0; //A1类目标成员变量的默认值;
公共:
~Hello (;
Hello(Constchar*h );
Hello(Constchar*h,const char* j );
hello ( STD: initializer _ list char *; //B1初始值列
Hello(ConstHelloobj );
(;
Hello:Hello(ConstHelloobj ) )。
{
cout call copy constructor endl;
hello=strdup(obj.hello );
}
#if 1
Hello:Hello(Constchar*h ) ) ) ) ) ) ) ) ) ) ) char * h ) ) ) ) ) char ) ) )。
{
hello=strdup(h;
cout __func__endl;
}
Hello:Hello(Constchar*h,const char* j ) ) ) ) ) )。
{
hello=strdup(h;
cout _ _ func _:_ _ line _ _ hello ( char * h,char* j ) endl;
}
hello: hello ( STD: initializer _ list char * vals ) ) ) ) ) ) ) ) ) ) ) )0) 0
{
char*x=(char* ) vals.begin );
hello=strdup(x;
cout _ _ func _:_ _ line _ _ hello ( STD: initializer _ listconstchar * ) endl;
}
#endif
#if 1
Hello:~Hello ( ) )。
{
if(this-Hello ) )。
自由( this-hello );
}
#endif
int main ( ) )
{
int a{0};
intB(0;
//int c{0.3}; 错误不能变窄
intd(0.3;
HelloH1(H1,H1 );
Hello H2{H2,H2}; //B2使用初始值列initializer_list
Hello H3{H2,H2,XX}; //使用初始值列initializer_list
返回0;
}
总结:
intb(1.4 )可以进行模拟化和类型转换。 不能{}。
初始化用户定义的类对象时,{}优先使用initializer_list的构造函数。
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn