首页 > 其他分享 >构造函数与析构函数

构造函数与析构函数

时间:2024-04-18 12:44:55浏览次数:23  
标签:real 函数 int 与析构 imag Complex 构造函数

构造函数

可以有多个,可以重载

复制构造函数

  • 只有一个参数,即对同类对象的引用
  • 没有定义会生成默认复制构造函数
Complex(const Complex & c){
	real=c.real;
	imag=c.imag;
}

三种使用情况

  • 用对象去初始化同类的另一个对象
Complex c2(c1);
  • 函数有一个参数是类A是的对象时
void Fun(A a1){}
int main(){
	A a1;
	Fun(a2);
	return 0;
}
  • 返回值是类A的对象
class A{
	public:
		int v;
		A(int n){v=n;};
		A(const A&a){
			v=a.v;	
		}
}
A fun(){
	A b(4);
	return b;
}
int main(){
	cout<<fun().v<<endl;
	return 0;
}

注意:对象间复制并不导致复制构造函数

类型转换构造函数

  • 实现类型的自动转换
  • 只有一个参数,而不是复制构造函数的构造函数,一般可以看作转换构造函数
class Complex{
	public:
	double real,imag;
		 Complex(int i){
			real=i;
			imag=0;
		}
		Complex(double r,double){real =r,imag =i;}
}
int main(){
	Complex c1(7,8);
	Complex c2 = 12;
	c1 = 9; //9被自动转换为一个临时complex对象
}

析构函数

  • 最多只能有一个析构函数
  • 没有参数和返回值
  • 在对象消亡时被自动调用

析构函数在对象作为返回值返回时被调用
![[Pasted image 20231224210231.png]]

构造函数与析构函数的调用时机

演示

![[Pasted image 20231224211248.png]]

new出来的必须delet才会调用析构函数

![[Pasted image 20231224211504.png]]

ANSWER:3

标签:real,函数,int,与析构,imag,Complex,构造函数
From: https://www.cnblogs.com/AndyYX/p/18143280

相关文章

  • 深入分析C++对象模型之移动构造函数
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。C++11新标准中最重要的特性之一就是引入了支持对象移动的能力,为了支持移动的操作,新标准引入了一种新的引用类型——右值引用,右值引用一......
  • 微信小程序中生命周期钩子函数
    微信小程序App的生命周期钩子函数有以下7个:   onLaunch(options):当小程序初始化完成时,会触发onLaunch(全局只触发一次)。   onShow(options):当小程序启动或从后台进入前台显示时,会触发onShow。   onHide():当小程序从前台进入后台时,会触发onHide。   onError(......
  • 第三节 函数的极限
    第三节函数的极限一、函数极限的定义  在自变量的某个变化过程中,如果对应的函数值无限接近于某个确定的数,那么这个确定的数就叫做在这一变化过程中函数的极限主要研究两种情形:(1)自变量x任意接近于有限值\(x_0\)或者说趋于有限值\(x_0\)(记作\(x→x₀\))时,对应的......
  • 函数重载
    1.什么是函数重载一组函数,其中函数名相同,参数列表的个数或者类型不同,那么这一组函数就称为函数重载一组函数要称得上重载,一定要在同一个作用域中。同一作用域#include<iostream>#include<cstring>usingnamespacestd;boolcompare(inta,intb){cout<<"in......
  • Effective Python:第5条 用辅助函数取代复杂的表达式
    初始代码: 第一次优化:多次使用:  ......
  • uniCloud云函数概述---云对象
    云对象是普通云函数的升级版,功能和云函数是一样的。它在大多数场景下替代了普通云函数。云对象是对象化的云函数,比如一个文章云对象,它可以包括文章的创建,文章的删除,文章的编辑等功能。(一句话描述云对象:等同于PHP后端部份) 一、创建云对象打开项目,找到uniCloud/cloudfuncti......
  • R语言函数速查
    R语言函数速查`ls()`:查看工作空间中的变量名字cat(,sep=)输出scan()输入rm()删除read.csv(file,encoding=’UTF-8)read.table(file,reader=T,sep=’’,stringAsFactor=T,encoding=’’)factor(data,levels=c(),labels=c())#NA不是levelsis.判断is.inf......
  • 深度解读《深度探索C++对象模型》之拷贝构造函数
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文。写作不易,请有心人到我的公众号上点点赞支持一下,增加一下热度,也好让更多的人能看到,公众号里有完整的文章列表可供阅读。有以下三种情况,一个类对象的初始......
  • element的表格页面宽度变化问题 (防抖函数)
      //表格问题(防抖函数) constdebounce=(fn,delay)=>{ lettimer=null; returnfunction(){ letcontext=this; letargs=arguments; clearTimeout(timer); timer=setTimeout(function(){ fn.apply(context,args); },delay); } } const_R......
  • MySQL存储过程与函数
    MySQL存储过程与函数存储过程创建、调用、删除创建CREATEPROCEDURE存储过程名(参数列表)BEGIN--SQL语句END;调用CALL存储过程名(参数值);删除DROPPROCEDUREIFEXISTS存储过程名;函数创建、调用、删除创建CREATEFUNCTION函数名(参数列表)RETURNS返......