簡體   English   中英

C ++,更改屬於類的struct對象的值

[英]C++, change values of struct object belonging to a class

我有一個以下的結構車:

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

還有一個以.h定義的Road類:

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號公路上超過警車?
非常感謝提前。

你永遠不會初始化指向汽車的指針,所以它指向垃圾記憶。 嘗試:

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

不過,最好在構造函數中初始化它。

使用指針作為字段可能非常棘手。 我建議調查三的規則,並逐漸熟悉動態分配的復雜性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM