在类中使用析构函数 我有一个C++项目,它使用类(非常基本的元素)。 我的班级是这样的: class vehicule: public frane,public motor,public directie,public noxe,public caroserie { char tip[40]; int placfatacant,placfatatot; static const int placfatapret=18; int placspatecant,placspatetot; static const int placspatepret=15; public: vehicule() void settip(char) void verifauto() ;};

在类中使用析构函数 我有一个C++项目,它使用类(非常基本的元素)。 我的班级是这样的: class vehicule: public frane,public motor,public directie,public noxe,public caroserie { char tip[40]; int placfatacant,placfatatot; static const int placfatapret=18; int placspatecant,placspatetot; static const int placspatepret=15; public: vehicule() void settip(char) void verifauto() ;};,c++,class,constructor,copy,destructor,C++,Class,Constructor,Copy,Destructor,有人告诉我必须使用复制构造函数和析构函数。我有一些例子,但都使用动态分配。现在我的问题是:我的复制构造函数/析构函数应该做什么,因为我没有动态分配的内存来复制/删除?或者我应该将数据声明为 int *placfatacant 然后使用 delete placfatacant ?? 提前谢谢 如您所说,如果需要处理动态分配变量的删除,则只需声明构造函数。通常,对于每一个新,都必须有一个删除 我在您的类中没有看到任何新的对象,所以我只让编译器生成的析构函数/复制构造函数来完成它的工作。您的类完全

有人告诉我必须使用复制构造函数和析构函数。我有一些例子,但都使用动态分配。现在我的问题是:我的复制构造函数/析构函数应该做什么,因为我没有动态分配的内存来复制/删除?或者我应该将数据声明为

int *placfatacant
然后使用

delete placfatacant
??
提前谢谢

如您所说,如果需要处理动态分配变量的删除,则只需声明构造函数。通常,对于每一个
,都必须有一个
删除


我在您的类中没有看到任何新的对象,所以我只让编译器生成的析构函数/复制构造函数来完成它的工作。您的类完全是静态分配的,当它超出使用它的上下文的范围时,将被删除。

如果是出于学校目的,您可以更改:

// From:
char tip[40];

// To:
char * tip;`
然后在构造函数中,您将:

tip = new char[40]();
现在您必须创建一个复制构造函数,如下所示:

vehicule(const vehicule & toCopy)
{
    tip = new char[40]();
    strcpy(tip, toCopy.tip);
}
您的析构函数只需解除分配
提示

~vehicule()
{
    delete tip;
}

如果您没有处理任何内存管理,那么默认值将正常工作。是的,我也知道这一点。重点是,这个项目是为学校准备的,老师评估的内容之一是构造函数、复制构造函数和析构函数的使用。你知道如何使用最后2个,以证明我知道如何使用它们吗?如果你的导师说你需要它们,我猜你应该在课堂上使用某种内存管理。如果我的答案回答了你的问题,请接受它作为使用绿十字的答案。谢谢是的,我也知道。重点是,这个项目是为学校准备的,老师评估的内容之一是构造函数、复制构造函数和析构函数的使用。你知道如何使用最后2个,以证明我知道如何使用它们吗?