d语言struct可以支持构造函数重载吗给个简单可运行的完整例子
是的,D语言的struct可以支持构造函数重载。以下是一个简单的可运行的完整例子:
struct Person
{
string name;
int age;
this(string name, int age)
{
this.name = name;
this.age = age;
}
this(string name)
{
this(name, 0);
}
}
void main()
{
Person p1 = Person("Tom", 30);
writeln(p1.name, " is ", p1.age, " years old.");
Person p2 = Person("Jerry");
writeln(p2.name, " is ", p2.age, " years old.");
}
输出:
Tom is 30 years old.
Jerry is 0 years old.
在这个例子中,Person结构体定义了两个构造函数。第一个构造函数接受两个参数,分别是姓名和年龄。第二个构造函数只接受姓名,但是它调用了第一个构造函数并把年龄设置为0。在main函数中,我们创建了两个Person对象,分别使用了不同的构造函数。第一个对象的姓名是Tom,年龄是30;第二个对象的姓名是Jerry,年龄是0
原文地址: https://www.cveoy.top/t/topic/eYrW 著作权归作者所有。请勿转载和采集!