Operator publiczny nowy, operator prywatny delete: uzyskanie C2248 „nie może uzyskać dostępu do prywatnego członka” podczas używania nowego

Klasa ma przeciążonych operatorównew idelete. new jest publiczny,delete jest prywatne.

Podczas konstruowania instancji tej klasy pojawia się następujący błąd:

pFoo = new Foo(bar)

example.cpp (1): błąd C2248: „Foo: operator delete”: nie można uzyskać dostępu do prywatnego członka zadeklarowanego w klasie „Foo”

Ale nie ma połączeniadelete tutaj, więc co się dzieje w pokręconym umyśle kompilatora? :)

Jaka jest przyczyna błędu?Czy możliwe jest rozwiązanie problemu bez uciekania się do członkaCreateInstance funkcjonować?

questionAnswers(4)

yourAnswerToTheQuestion