多态性——运算符重载(三)

2017-01-14 19:44:10来源:CSDN作者:qq_27305031人点击

第七城市
  1. ++和–重载:通过是当否在参数表中插入关键字int带来区分这两种方式。前缀方式:ob.operator++();后缀方式:ob.operator++(int)。(这两种都是成员函数重载。友元函数重载一般都需要引用(ob.operator++( X &ob);)
  2. 注意前缀和后缀的区别:前者是先自减,返回的是修改后的对象本身;后者返回的是自减前的对象,然后对象自减。
  3. 友元运算函数没有this指针,所以不能用this指针所指的对象。故用友元函数重载是需要采用对象的引用参数传递数据。
  4. 赋值运算符:如果用户自定义赋值运算符函数,那么系统将自动的生成为其生成一个默认的赋值运算符函数。
  5. 赋值运算符可以解决指针悬挂的问题。调用默认的赋值运算符函数,采用的浅层复制方法,是两个指针指向同一个空间。可以为对象分配各自的内存空间,这就是深层复制。且只能重载为成员函数,而不能重载友元函数。双目赋值运算符应重载成员函数的形式。
  6. 类型转换:将一种类型的值转换为另一种的类型值,可以是隐式转换,也可以是显式转换(类型名 (表达式))。
  7. 转换构造函数具有类型转换的作用,它的作用是将一个其他类型的数据转换为它所在类的对象。
    (1)先声明一个类。
    (2)在这个类中定义一个只有一个参数的构造函数,参数是待转换类型的数据,在函数体中指定转换的方法。(类似一个数和一个类相加);

  8. 转换构造函数说明:
    (1)转换构造函数也是构造函数,作用是将其他类型的数据转换为所在类的对象,仅仅起到初始化的作用。
    (2)转换构造函数不仅可以将一个系统预定义的标准类标准类型数据转换为类的对象,也可以将另一个类的对象转换为转换构造函数所在类的对象。

  9. 类型转换函数:通过转换构造函数将制定的数据转换为类的对象。但是不能反过来将一个类的对象转换为其他类型的数据。类型转换函数的作用是将一个类的对象转换为另一个类型的数据。(operator double ( ))
  10. 类型转换函数注意事项
    (1)类型转换函数只能定义一个类的成员函数而不能是友元函数。
    (2)类型转换函数可以没有参数,也不能在函数名前面指定函数类型。
    (3)类型转换函数必须有return值,必须送回目标类型的数据作为函数的返回值。
    (4)一个类可以定义多个类型转换函数。
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台