📜  C ++ |构造函数|问题12(1)

📅  最后修改于: 2023-12-03 14:39:38.495000             🧑  作者: Mango

C++ | 构造函数 | 问题12

在C++中,构造函数是用于在创建对象时初始化成员变量的特殊函数。构造函数默认的名称与类的名称相同,且没有返回值。

构造函数可以有多个重载,这意味着您可以为同一个类设计多个不同的构造函数,以便更好地满足不同情况下的需求。

构造函数通常用于以下操作:

  • 初始化成员变量
  • 分配内存
  • 调用其他构造函数(委托构造函数)
构造函数的语法

以下是使用构造函数声明类的语法:

class ClassName {
   public:
      // Constructor declaration
      ClassName();

      // Other method declarations
};

在此示例中,ClassName()被定义为默认构造函数。您可以创建其他构造函数,这些构造函数可以采用不同的参数。

以下是使用构造函数为成员变量初始化的示例:

#include <iostream>
 
using namespace std;
 
class Date {
   public:
      Date(int d, int m, int y) {
         day = d;
         month = m;
         year = y;
      }
 
      void displayDate() {
         cout << day << "/" << month << "/" << year << endl;
      }
 
   private:
      int day, month, year;
};
 
int main() {
   Date d(25, 12, 2021);
   d.displayDate();
   
   return 0;
}

在此示例中,我们创建了一个名为Date的类,并使用构造函数在创建对象时初始化了成员变量day,month和year。

委托构造函数

委托构造函数允许一个构造函数调用另一个构造函数。委托构造函数的语法如下:

ClassName(parameter-list) : constructor-initializer-list 
{
   // Body of constructor
}

在此示例中,constructor-initializer-list是初始化列表,其中包含了需要进行初始化的成员变量列表。以下是使用委托构造函数初始化成员变量的示例:

#include <iostream>
 
using namespace std;
 
class Date {
   public:  
      // Delegate constructor
      Date() : Date(1, 1, 1900) {}
 
      Date(int d, int m, int y) {
         day = d;
         month = m;
         year = y;
      }
 
      void displayDate() {
         cout << day << "/" << month << "/" << year << endl;
      }
 
   private:
      int day, month, year;
};
 
int main() {
   Date d1(25, 12, 2021);
   d1.displayDate();
 
   Date d2;
   d2.displayDate();
 
   return 0;
}

在此示例中,我们通过使用委托构造函数来初始化成员变量,默认构造函数调用了另一个构造函数来进行初始化。