struct bbox {
float x, y, w, h;
//重载==运算符,相等返回1,不等返回0
bool operator==(const bbox &p) {
return (x==p.x && y==p.y && w==p.w && h==p.h);
}
};
int main(int argc, char const *argv[]) {
bbox a = {.x=0.1, .y=0.2, .w=.3, .h=.4};
//结构体深拷贝
bbox b = a;
a.x = -1;
if (a==b) cout << "equal" << endl;
return 0;
}
C++结构体深拷贝与浅拷贝的理解与示例
这篇博客介绍了C++中结构体的深拷贝和浅拷贝概念,并通过一个具体的例子展示了它们的区别。示例中定义了一个包含浮点数坐标和尺寸的`bbox`结构体,重载了`==`运算符进行比较。在主函数中创建了两个`bbox`实例并进行了值的修改,通过比较展示了深拷贝确保了副本的独立性。
439

被折叠的 条评论
为什么被折叠?



