网站设计公司服务,郑州市建设集团,2023年专升本最新政策,搜索引擎营销的五大特点1.构造方法(函数)
构造方法是一种特殊的成员方法#xff0c;与其他成员方法不同:
构造方法的名字必须与类名相同#xff1b;
无类型、可有参数、可重载
会自动生成#xff0c;可自定义
一般形式:类名(形参)#xff1b;
例: Stu(int age);
当用户没自定义构造方法时与其他成员方法不同:
构造方法的名字必须与类名相同
无类型、可有参数、可重载
会自动生成可自定义
一般形式:类名(形参)
例: Stu(int age);
当用户没自定义构造方法时系统将会执行默认构造方法当用户自定义一个或多个构造方法后在创建对象时系统会根据用户的传参选择其中一个构造方法执行。
执行时间:创建对象后马上执行。
功能:一般功能是初始化对象成员变量可根据自己需求定义。
注意:创建一个对象只会选择执行一个构造方法且创建了带参的构造方法必须再创建一个不带参的构造方法除非每次创建的对象都是带参的。
下例中有两个构造函数创建am1不带参触发不带参的构造函数什么也不执行创建am2带参触发对应的带参构造函数打印提示信息如下
2.拷贝(复制) 构造函数:
拷贝构造函数是一种特殊的构造函数通常用于复制一个对象的内容给另一个对象以实现对象的拷贝操作。
系统会自动生成(浅拷贝)可自定义。
一般形式:类名(const 类名 obj) 例:Stu(const Stu obj);
触发拷贝构造函数:Stu stu2(stu1); //将stu1的内容拷贝给stu2
浅拷贝:当成员变量中有指针时浅拷贝会将拷贝对象指针与被拷贝对象指针指向同一空间两个指针操作时操作的都是被拷贝对象指针指向的空间(系统默认)。
如下am1指针指向am1的age将am1的内容拷贝给am2后am2的指针等于am1的指针也指向am1的age则通过am2指针改变的是am1.age的值 由于浅拷贝指针指向的不合理由此有个深拷贝。
深拷贝:可让自己的指针只指向自己的变量(用户自定义) 。 3.析构函数:
析构函数的名字是在类名前面加一个~符号。
无类型、无参数、无重载
会自动生成可自定义
一般形式:~Stu();
功能:一般功能为完成清理工作如:销毁malloc创建的动态存储空间。
执行时间:在对象生命周期结束前自动触发出发后再结束生命
如下并未手动调用在创建对象是会自动调用构造函数在对象生命周期结束前自动调用析构函数。