C ++,更改属于类的struct对象的值

时间:2013-11-21 22:24:31

标签: c++ class struct

我有一个以下的结构车:

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

道路类,在.h:

中定义
class Road
{
public:
    int road_num;
    Car* police;

};


例如,我想模拟汽车链条之类的东西,每辆汽车都有指向下一辆汽车的指针。 (我知道我可以使用清单,但我不被允许,所以我想到了这样的事情。) 我希望能够在这条特定的道路上定义警车(以及其他车辆)。而且我想给已经在主要部分的这辆警车提供一个号码,然后能够在道路级别的成员职能中改变它。我有一个问题如何超过道路类的Car变量

主要:

Road road88;

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

然后在Road-Class的成员函数中的某个地方:

(*police).number=11;

我可以完成程序,但是当我运行它时,我收到以下错误:

Segmentation fault (core dumped)

如何在88号公路上超过警车? 非常感谢。

1 个答案:

答案 0 :(得分:2)

您永远不会初始化指向汽车的指针,因此它指向垃圾记忆。尝试:

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

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

将指针用作字段可能非常棘手。我建议调查三个规则,并且非常熟悉动态分配的复杂性。