当前位置: 首页 > news >正文

C++核心编程和桌面应用开发 第四天(构造/析构函数)

1.构造函数

  • 没有返回值,无需写void
  • 函数名和类名相同
  • 可以有参数,可以发生函数重载

1.1有参/无参构造函数

1.2普通/拷贝构造函数

1.2.1拷贝构造函数

函数名(const 函数名 &)

class Person()
{
public:Person() {}Person(int a) {}Person(const Person &p) {}
}

调用时机:

①用已创建好的对象初始化新对象

Person p1(18);
Person p2(p1);

 ②值传递的方式给函数参数传值

void func(Person p){...}Person p1(28);
func(p1);
//此时,p1作为实参,p作为形参,func函数会调用Person的拷贝构造函数,将p1的值传递给p

③以值的方式,返回局部对象

Person func()
{Person p(38);return p;
}Person p1=func();
//p为局部对象,返回时会调用拷贝构造函数构建一个新的对象给p1,p在函数执行完之后会释放

2.析构函数

  • 没有返回值,无需写void
  • 函数名和类名相同,函数名前加~
  • 不可以有参数,不可以发生函数重载

http://www.mrgr.cn/news/29092.html

相关文章:

  • 【python设计模式2】创建型模式1
  • (185)时序收敛--->(35)时序收敛三五
  • C++ 科目二 [dynamic_cast]
  • 企业开发时,会使用sqlalchedmy来构建数据库 结构吗? 还是说直接写SQL 语句比较多?
  • makefile 的语法(7):函数 word wordlist words firstword lastword ;
  • 一种快速遍历二叉树的方法
  • 构建高效、精准的动物情绪分类模型:基于深度学习的技术实践与探索
  • 认知小文3《打破桎梏,编程与人生的基本法则》
  • 程序中类与对象的理解(面向对象思想)
  • kali——foremost的使用
  • 中秋佳节,月圆人团圆
  • 【数据结构篇】~链表算法题3(环形链表)
  • 【时时三省】linux应用层开发经验总结
  • 【计算机基础】关于存储的各种概念
  • 《沈阳体育学院学报》
  • 【每日一题】LeetCode 2332.坐上公交的最晚时间(数组、双指针、二分查找、排序)
  • 笔记:BLIP源码之(2)模型是如何定义的
  • 机器学习、计算机视觉与NLP:从基础到深度学习的综合指南
  • Android 微信,手机文件管理,通过自己软件打开
  • 网络安全-LD_PRELOAD,请求劫持