Tại sao tôi có thể tạo một đối tượng của một lớp với destructor riêng trên cửa hàng miễn phí nhưng không phải trên ngăn xếp?Private destructor
Ví dụ này là bất hợp pháp:
class Foo
{
public:
explicit Foo(int);
static void delete_foo(Foo* foo) { delete foo; }
private:
int x;
~Foo();
Foo(const Foo&);
Foo& operator=(const Foo&);
};
int main()
{
Foo * fooptr = new Foo(5); // legal
Foo::delete_foo(fooptr); // legal
Foo foo(5); // illegal
}
Bạn có thể vui lòng cung cấp mẫu mã ngắn để minh họa không? – sharptooth
Tôi có thể làm điều đó cho bạn – CashCow