gpt4 book ai didi

C++,改变属于一个类的结构对象的值

转载 作者:行者123 更新时间:2023-11-28 03:03:59 24 4
gpt4 key购买 nike

我有一个以下结构的汽车:

struct Car {
public:
integer number;
Car *right;
Car(double a, Car *f): number(a), right(f){}
};

还有一个 Road 类,定义在 .h 中:

class Road
{
public:
int road_num;
Car* police;

};


例如,我想模拟一连串的汽车,每辆车都有一个指向下一辆车的指针。 (我知道我可以使用列表,但我不允许,所以我想到了这样的事情)。
我希望能够在这条特定的道路上定义警车(以及其他汽车)。我想给这辆已经在主车上的警车一个号码,然后能够在 Road-Class 的成员功能中更改它。我有一个问题如何超过 Road-Class 的 Car 变量

主要是:

Road road88;

(*(road88.police)).number=33;

然后在 Road-Class 的成员函数中的某处是这样的:

(*police).number=11;

我可以编译程序,但是当我运行它时,出现以下错误:

Segmentation fault (core dumped)

如何在road88上超越警车?
非常感谢。

最佳答案

你永远不会初始化指向汽车的指针,所以它指向垃圾内存。尝试:

road88.police = new Car;
road88.police->number = 33; // same as (*(road88.police)).number = 33;;

不过,最好在构造函数中初始化它。

将指针用作字段可能非常棘手。我建议研究三法则并非常熟悉动态分配的复杂性。

关于C++,改变属于一个类的结构对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20133228/

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