Ich möchte einen statischen, konstanten Zeiger auf ein Objekt des Klassentyps MyClass2 initialisieren, das in einem statischen Datenpuffer in der Klasse MyClass1 gespeichert ist, wenn dies der Fall ist instanziiert.Verwenden Sie Placement neu, um einen statischen Const-Zeiger auf einen statischen Speicherpuffer zu erstellen
funktioniert das nicht:
class MyClass1 {
public:
MyClass1()
{
_my_class_2_ptr = new (_my_class_2_buf) MyClass2();
}
private:
static MyClass2 *const _my_class_2_ptr;
static char *_my_class_2_buf = new char[sizeof(MyClass2)];
};
Gibt es eine Möglichkeit, so etwas zu erreichen?
Verstanden. Da der Klasse statische Variablen gemeinsam sind, ist es wahrscheinlich nicht sinnvoll, sie jedes Mal neu zu initialisieren, wenn die Klasse instanziiert wurde. In diesem Fall wollte ich jedoch, dass MyClass1 ein Singleton ist, so dass es nur einmal instanziiert werden kann, ich nehme an, dass es nicht wirklich wichtig wäre. – Bitrex
Sie fehlen 'type' für std :: aligned_storage :: Typ - sehr schlecht! –
@ DieterLücking er benutzt 'aligned_storage_t' nicht' aligned_storage' –