【C++】构造函数和析构函数详解

03-11 阅读 0评论

个人主页 : zxctscl

【C++】构造函数和析构函数详解,【C++】构造函数和析构函数详解,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第1张
(图片来源网络,侵删)

文章封面来自:艺术家–贤海林

如有转载请先通知

文章目录

  • 1. 类的6个默认成员函数
  • 2. 构造函数
    • 2.1 概念
    • 2.2 构造函数特性
      • 2.2.1 语法特性
      • 2.2.2 其他特性
      • 3. 析构函数
        • 3.1 概念
        • 3.2 特性
        • 4. 构造与析构顺序

          1. 类的6个默认成员函数

          如果一个类中什么成员都没有,简称为空类。

          空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。

          默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。

          【C++】构造函数和析构函数详解

          【C++】构造函数和析构函数详解,【C++】构造函数和析构函数详解,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第3张
          (图片来源网络,侵删)

          重点关注前面四个。

          2. 构造函数

          在写栈或者队列时可能会忘记初始化,就会开始其他操作,所以c++就提出构造函数。

          2.1 概念

          对于以下Date类:

          class Date
          {
          public:	
          	void Init(int year, int month, int day)
          	{
          		_year = year;
          		_month = month;
          		_day = day;
          	}
          	void Print()
          	{
          		cout 
          	Date d1;
          	d1.Print();
          	Date d2(2024, 2, 23);
          	d2.Print();
          	Date d3(2024);
          	d3.Print();
          	return 0;
          }
          
          public:
          //无参构造函数
          	Date()
          	{
          		_year = 1;
          		_month = 1;
          		_day = 1;
          	}
          	
          	//带参构造函数
          	Date(int year, int month, int day)
          	{
          		_year = year;
          		_month = month;
          		_day = day;
          	}
          	void Print()
          	{
          		cout 
          	Date d1;// 调用无参构造函数
          	d1.Print();
          	Date d2(2024, 2, 23);// 调用带参的构造函数
          	d2.Print();
          	return 0;
          }
          
          public:
          	Date(int year = 1, int month = 1, int day = 1)
          	{
          		_year = year;
          		_month = month;
          		_day = day;
          	}
          	void Print()
          	{
          		cout 
          	Date d3(2024);
          	d3.Print();
          	return 0;
          }
          
          public:
          	Date()
          	{
          		_year = 1;
          		_month = 1;
          		_day = 1;
          	}
          	Date(int year = 1, int month = 1, int day = 1)
          	{
          		_year = year;
          		_month = month;
          		_day = day;
          	}
          	void Print()
          	{
          		cout 
          	Date d1;
          	d1.Print();
          	return 0;
          }
          	
          
          public:	
          	void Print()
          	{
          		cout 
          	Date d1;
          	d1.Print();
          	return 0;
          }
          
          public:
          	Time()
          	{
          		cout 
          private:
          	// 基本类型(内置类型)
          	int _year;
          	int _month;
          	int _day;
          	// 自定义类型
          	Time _t;
          };
          int main()
          {
          	Date d;
          	return 0;
          }
          
          public:
          	Date(int year, int month, int day)
              {
          		 _year = year;
                   _month = month;
          		 _day = day;
              }
          	void Print()
          	{
          		cout 
            
               Date d1;
          	 d1.Print();
              return 0;
          }
          
          public:
          	Date()
          	{
          		_year = 1;
          		_month = 1;
          		_day = 1;
          	}
          	Date(int year, int month, int day)
              {
          		 _year = year;
                   _month = month;
          		 _day = day;
              }
          	void Print()
          	{
          		cout 
            
               Date d1;
          	 d1.Print();
              return 0;
          }
          
          public:
          	Date()
          	{
          		_year = 1;
          		_month = 1;
          		_day = 1;
          	}
          	Date(int year, int month, int day)
          	{
          		_year = year;
          		_month = month;
          		_day = day;
          	}
          	void Print()
          	{
          		cout 
          		cout 
          	Date d2;
          }
          int main()
          {
          	func();
          	Date d1;
          	d1.Print();
          	return 0;
          }
          
          public:
          	Date()
          	{
          		_year = 1;
          		_month = 1;
          		_day = 1;
          	}
          	Date(int year, int month, int day)
          	{
          		_year = year;
          		_month = month;
          		_day = day;
          	}
          	void Print()
          	{
          		cout 
          		cout 
          	Date d2;
          }
          class Stack
          {
          public:
          	Stack(size_t capacity = 3)
          	{
          		_array = (int*)malloc(sizeof(int) * capacity);
          		if (NULL == _array)
          		{
          			perror("malloc申请空间失败!!!");
          			return;
          		}
          		_capacity = capacity;
          		_size = 0;
          	}
          	void Push(int data)
          	{
          		// CheckCapacity();
          		_array[_size] = data;
          		_size++;
          	}
          	bool Empty()
          	{
          		return _size == 0;
          	}
          	int Top()
          	{
          		return _array[_size - 1];
          	}
          	void Pop()
          	{
          		//..
          	}
          	~Stack()
          	{
          		cout 
          			free(_array);
          			_array = nullptr;
          		}
          		_size = _capacity = 0;
          	}
          private:
          	int* _array;
          	int _capacity;
          	int _size;
          };
          int main()
          {
          	func();
          	Date d1;
          	d1.Print();
          	Stack st1;
          	return 0;
          }
          
          public:
          	~Time()
          	{
          		cout 
          private:
          	// 基本类型(内置类型)
          	int _year = 1970;
          	int _month = 1;
          	int _day = 1;
          	// 自定义类型
          	Time _t;
          };
          int main()
          {
          	Date d;
          	return 0;
          }
          
          public:
          	Date(int year = 1)
          	{
          		_year = year;
          	}
          	~Date()
          	{
          		cout 
          	Date d1(1);
          	Date d2(2);
          	return 0;
          }
          
          public:
          	Date(int year = 1)
          	{
          		_year = year;
          	}
          	~Date()
          	{
          		cout 
          	Date d3(3);
          	static Date d4(4);
          }
          int main()
          {
          	Date d1(1);
          	Date d2(2);
          	
          	func();
          	return 0;
          }
          

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]