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
  • 函数名和类名相同,函数名前加~
  • 不可以有参数,不可以发生函数重载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值