D语言 struct 重载赋值运算符详解
在 D 语言中,重载赋值运算符的语法如下:
struct MyStruct {
int x;
int y;
// 重载赋值运算符
MyStruct opAssign(MyStruct other) {
x = other.x;
y = other.y;
return this;
}
}
在这个例子中,我们定义了一个名为'MyStruct'的结构体,并重载了赋值运算符。在'opAssign'函数中,我们将'other'结构体的成员变量值赋给当前结构体的成员变量,并返回当前结构体的引用。
在使用重载赋值运算符时,可以直接使用'='符号进行赋值操作,例如:
MyStruct s1 = {1, 2};
MyStruct s2 = {3, 4};
s1 = s2; // 使用重载的赋值运算符
assert(s1.x == 3 && s1.y == 4);
在上面的代码中,我们先定义了两个'MyStruct'实例's1'和's2',然后通过重载的赋值运算符将's2'的值赋给's1',最后通过'assert'断言's1'的成员变量值是否正确。
原文地址: https://www.cveoy.top/t/topic/n0Zp 著作权归作者所有。请勿转载和采集!