dmd2语言struct使用opAssign直接不用初始化赋值的例子
以下是一个使用opAssign的例子,可以在不需要初始化的情况下直接进行赋值:
struct Person {
string name;
int age;
void opAssign(Person other) {
name = other.name;
age = other.age;
}
}
void main() {
Person p1, p2;
p2.name = "John";
p2.age = 30;
p1 = p2;
writeln(p1.name); // 输出 "John"
writeln(p1.age); // 输出 30
}
在这个例子中,我们定义了一个Person结构体,并重载了opAssign运算符。这样,我们就可以在不需要初始化的情况下直接进行赋值操作。
在main函数中,我们首先声明了两个Person对象p1和p2。然后,我们只给p2的name和age属性赋值,而不是使用构造函数初始化整个对象。最后,我们通过p1 = p2来将p2的值赋给p1,这样就完成了赋值操作。
通过这个例子,我们可以看到,使用opAssign可以方便地进行结构体的赋值操作,而不需要手动初始化每个属性
原文地址: https://www.cveoy.top/t/topic/e1mu 著作权归作者所有。请勿转载和采集!