Est-ce que SomeClass * initialEl = new SomeClass [5]; nécessairement compiler, en supposant que SomeClass n'a pas de constructeur par défaut non déclaré publiquement? Considérez:SomeClass * initialEl = new SomeClass [5];
/*
* SomeClass.h
*
*/
#ifndef SOMECLASS_H_
#define SOMECLASS_H_
class SomeClass
{
public:
SomeClass(int){}
~SomeClass(){}
};
#endif /* SOMECLASS_H_ */
/*
* main.cpp
*
*/
#include "SomeClass.h"
int main()
{
SomeClass* initialEl = new SomeClass[5];
delete[] initialEl;
return 0;
}
Vous devez utiliser 'delete []' lors de la suppression de tableaux. – Job
Non, vous devriez utiliser 'std :: vector' de sorte que vous supprimerez toujours automatiquement. Il n'y a aucune raison de ne pas utiliser un vecteur. – GManNickG
Zéro raison? Qu'en est-il de la performance en général? Que faire si je veux utiliser le placement nouveau plus tard (ce que je fais)? – user383352