gpt4 book ai didi

指针和double之间的c++赋值运算符

转载 作者:行者123 更新时间:2023-11-28 01:26:26 25 4
gpt4 key购买 nike

我有一个类,它的成员变量是指向另一个类的指针

struct Unit {
Unit();
double value;
}

struct Widget {
Widget();
Unit *width;
}

Unit::Unit(){
value = 0.0;
}

Widget::Widget(){
width = new Unit();
}

我想重载赋值运算符,这样:

Widget w;
w.width = 4.0;

将 Widget 的 widthvalue 设置为 4。我认为答案在 friend 函数中,但我对它们不够熟悉,无法实现这一点。

为清楚起见,运算符重载等同于:

w.width->value = 4.0;

最佳答案

你可以定义一个重载运算符来让你做类似的事情

Widget w;
w = 4.0;

并在内部将 *width 设置为 4.0(显然需要检查以确保指针没有问题)。如上所述,尽管如此,您最好不要使用指针。

但是,您不能做的正是您所要求的,因为它需要重载 operator= 才能在指针和 float 之间工作。见https://isocpp.org/wiki/faq/intrinsic-types#intrinsics-and-operator-overloading

关于指针和double之间的c++赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53566469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com