📅  最后修改于: 2023-12-03 14:39:38.495000             🧑  作者: Mango
在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;
}
在此示例中,我们通过使用委托构造函数来初始化成员变量,默认构造函数调用了另一个构造函数来进行初始化。