小工具知识网

当前位置: 首页 > 行业知识 > c++------类和对象(下)包含了this指针、构造函数、析构函数、拷贝构造等

行业知识

c++------类和对象(下)包含了this指针、构造函数、析构函数、拷贝构造等

2026-10-31 15:55:57 来源:互联网转载

文章目录

  • 前言
  • 一、this指针
    • 1.1、this指针的引出
    • 1.2、 this指针的特性
    • 二、类的默认的六个构造函数
      • 2.1、构造函数简述
      • 2.2构造函数
      • 三、析构函数
        • 3.1、析构函数引出
        • 3.2、特点:
        • 四、拷贝构造
          • 4.1、引入
          • 4.2、特征:
          • 4.3、默认拷贝构造函数
          • 总结

            前言

            在本节中,我将给大家介绍我们在学习C++中经常要用到的,this指针、类的六个默认成员函数、运算符重载等相关知识.

            下面我会结合一个简单的类----日期类来介绍

            后面需要时会补充相应的成员函数

            class Date{public:void Display()//打印类对象中的内容{cout _year = year;_month = month;_day = day;}private:int _year; // 年int _month; // 月int _day; // 日};    Date d1, d2;    d1.SetDate(2024,5,1);    d2.SetDate(2024,6,1);    d1.Display();    d2.Display();    return 0; }public:void Print_this(){cout Date d1, d2;d1.Print_this();//cout public:void Display(){cout public:void Display()//打印类对象中的内容{cout _year = year;_month = month;_day = day;}private:int _year; // 年int _month; // 月int _day; // 日};public:    // 1.无参构造函数    Date()    {}    // 2.带参构造函数    Date(int year, int month, int day)//无返回值    {        _year = year;        _month = month;        _day = day;    }private:    int _year;    int _month;    int _day;};void TestDate(){    Date d1; // 调用无参构造函数    Date d2(2024, 6, 1); // 调用带参的构造函数,用于初始化    // 注意:如果通过无参构造函数创建对象时,对象后面不用跟括号,否则就成了函数声明    // 以下代码的函数:声明了d3函数,该函数无参,返回一个日期类型的对象    Date d3();public:    ~Date()    {        _year = 0;        _month = 0;        _day = 0;    }     Date(int year, int month, int day)    {        _year = year;        _month = month;        _day = day;    }    int _year;    int _month;    int _day;};int main(){    Date d2(2024, 6, 1);    return 0;}public: Date(int year = 1900, int month = 1, int day = 1)//全缺省 { _year = year; _month = month; _day = day; } // Date(const Date d)   // 错误--引发无穷递归    Date(const Date& d)   // 正确写法 _year = d._year; _month = d._month; _day = d._day; }private: int _year; int _month; int _day;};int main(){ Date d1; Date d2(d1);//也可以写成Date d2=d1 return 0;}

上一篇:易语言源码循环结构深度解析

下一篇:按阶段奖励公式怎么设?