C++ C++;,带指针的结构,创建第一个对象

C++ C++;,带指针的结构,创建第一个对象,c++,struct,C++,Struct,我有一辆以下结构车: struct Car { public: integer number; Car *down, *right; Car(double a, Car b, Car f): number(a), right(&f){} }; 例如,我想建立一个汽车链的模型,每辆车都有一个指向下一辆车的指针。 我的问题是第一辆车不应该指向任何地方,指向空。 (可变数字与汽车在链条中的位置无关)。 我试过这样的方法: Car* first = new Car(2342

我有一辆以下结构车:

struct Car {
public:
    integer number;
 Car  *down,  *right;
  Car(double a, Car b,  Car f): number(a), right(&f){}
};
例如,我想建立一个汽车链的模型,每辆车都有一个指向下一辆车的指针。 我的问题是第一辆车不应该指向任何地方,指向空。 (可变数字与汽车在链条中的位置无关)。 我试过这样的方法:

Car* first = new Car(23421,NULL);
car.cpp:39:35:错误:调用“car::car(int,NULL)”时没有匹配函数 car.cpp:39:35:注:候选人为: car.cpp:28:3:note:car::car(int,car) car.cpp:28:3:注:参数2从'int'到'car'的转换未知 car.cpp:24:8:note:car::car(const car&) car.cpp:24:8:注:候选人期望1个参数,提供2个参数
我怎么能指出一个无处可去的地方

您应该声明一个Car变量,并将指针成员赋值为NULL。这应该在默认构造函数中完成,因此您不必每次都手动完成

Car mycar;
    mycar.down =NULL;
    mycar.right =NULL;
之后,您可以按照自己的意愿将车拴起来:

mycar.down = mySecondCar;
mycar.right = myThirdCar;
这个构造函数

Car(double a, Car b,  Car f): number(a), right(&f){}
这是无效的。使用指向局部变量的指针。按以下方式更改构造函数

Car(double a, Car *b,  Car *f): number(a), right(f){}

一段代码中有太多错误。首先,将
车(双a车,b车,f车)
换成
车(双a车,b车,f车)
,但这也不好;您可能会重写此代码。您可能需要查看构造函数、指针、引用和方法重载,就像您是C++新手,犯了很多错误,使汽车库的属性构成了汽车,然后将它们存储在std::列表中,而不是自己发明。这可能是重复的注释。这可能是重复的注释
Car(double a, Car *b,  Car *f): number(a), right(f){}