[英]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.