use*_*171 8 c++ constructor initialization class
对于像int这样的标准数据对象,可以完成以下操作
int number;
number = 0;
Run Code Online (Sandbox Code Playgroud)
基本上,您可以在初始化之前声明数字,如果您在各种if语句中初始化并且不希望数字超出范围,则非常有用.
可以使用自定义类完成类似的操作吗?
我有一个名为mem_array的类,其中包含表单的构造函数
mem_array(int,int,std::string);
Run Code Online (Sandbox Code Playgroud)
我想做以下几点
mem_array myData;
if(x==0) myData(1,1,"up");
if(x==1) myData(0,0,"down");
Run Code Online (Sandbox Code Playgroud)
基本上,所以我可以在if语句的范围之外使用myData.可以这样做吗?
您的第一行会给您一个错误,因为构造函数没有默认值并且不存在没有参数的构造函数。
只需使用指针(或者更好的是智能指针,这样您就不必负责删除对象)。但之后一定要检查 x 是 0 还是 1,即检查 myData 是否已构建。
mem_array* myData=0;
if(x==0) myData=new mem_array(1,1,"up");
if(x==1) myData=new mem_array(0,0,"down);
assert(myData!=0);
Run Code Online (Sandbox Code Playgroud)