🔥个人主页:Forcible Bug Maker
🔥专栏:C++
前言
取地址及const取地址操作符重载
再谈构造函数
初始化列表
explicit关键字
成员变量缺省值
结语
前言
本篇主要内容:类的六个默认成员函数中的取地址及const取地址重载,构造函数初始化列表,隐式类型转换,缺省值。
上篇博客用之前学过的知识实现了一个简单的日期类Date,在日期类中,有介绍到多种类型运算符重载的运用,如前置++后置++等。在运算符重载的过程中,有效的代码复用也非常重要,可以大大简化代码编写过程。最后还提到了const成员和友元。本篇博客将会介绍最后两个类的默认成员函数,不过并不困难。而文中再次谈到的构造函数需要静下心来理解。
取地址及const取地址操作符重载
这两个默认成员函数一般不用重新定义,编译器默认生成的就够用。
class Date { public: Date(int year = 2000, int month = 1, int day = 1) { _year = year; _month = month; _day = day; } // 取地址重载 Date* operator&() { return this; } // const取地址重载 const Date* operator&()const { return this; } private: int _year; // 年 int _month; // 月 int _day; // 日 }; int main() { Date d1; const Date d2; cout