C++ 类和对象——6中默认的成员函数

c++的类中有6种默认的成员函数:
这里写图片描述

在介绍这些成员函数之前,先要了解2个概念:

  • 函数重载
    在同一个作用域内,1组函数函数名相同,而参数个数或数目不同,返回值可同可不同,这就是函数的重载,简单理解就是同名函数有不同的功能。

  • 缺省函数
    顾名思义,就是在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数。
    缺省参数使用主要规则:调用时你只能从最后一个参数开始进行省略,换句话说,如果你要省略一个参数,你必须省略它后面所有的参数,即:带缺省值的参数必须放在参数表的最后面。 缺省值必须是常量。缺省函数又分全缺省函数和半缺省函数。


下面开始正式介绍类中的6个默认成员函数:

构造函数

我们都知道,类中的成员变量为私有时,在类外不能访问类中的成员,所以我们需要在类内定义一个函数,在类的对象实例化时有且仅有调用一次,用于对对象的各个成员进行初始化。这样的成员函数就是构造函数。

构造函数的特点如下:

  • 函数名与类名相同
  • 无返回值
  • 在类的对象实例化后有且仅有调用一次
  • 构造函数可以重载
  • 构造函数可以在类内定义,可以在类外定义
  • 如果没有人为的定义构造函数,那么C++编译器会自动生成默认的缺省的构造函数,但只要人为定义了构造函数,编译器就不会自动生成构造函数
  • 无参的构造函数和全缺省的构造函数都是缺省的构造函数,且缺省的构造函数只能有一个。

拷贝构造函数

1>拷贝构造是构造的重载。

2>拷贝构造参数必须引用传参,否则会递归无限循环。

3 >若是未定义,系统会默认缺省的。(浅拷贝)

析构函数

1>析构函数名称为在类名前面加~;

2>析构函数无参数无返回值。

3 >一个类只有一个析构函数,未定义会生成缺省的析构函数。(缺省的构造函数)

4>类的生命周期结束时会自动调用析构函数,先定义先析构,后定义后析构。

5>析构函数是做清理工作(即释放构造函数所开辟的空间)

赋值运算符重载

作用:C++支持运算符重载,为了增强代码的可读性。

特征:

1>(返回类型) operator + 合法的运算符 构成函数名称 (加返回类型是为了支持连续赋值)

2>重载不改变优先级问题。 不改变操作个数。

3>C++不能重载的五个运算符 ?: \ sizeof \ :: \ . \ .*

4>已经存在的对象。

猜你喜欢

转载自blog.csdn.net/Ferlan/article/details/80699512