Xử lí con trỏ và hàm destructor trong OOP

Em đang vướng mắc phần này 1 chút, các bạn xem ví dụ mà ý kiến cho mình cách khắc phục với nha :smiley:

     class a {
      char *p;
      int inter;
     public:
      a;
      ~a;
      a test();
     }
     a::a() {
      p = new char[];
      inter = 1;
     }
     a::~a() {
     delete p;
     }
     a a::test() {
      a tests;
      tests.p = abc;
      a = 1;
      return tests;
     }

Lúc gọi hàm tests này để gán cho 1 biến thuộc class a ở hàm main thì sẽ bị lỗi vì hàm destructor đã đc gọi và địa chỉ của cái hàm test biến mất, ai có giải pháp gì để xử lí việc này không ạ.
p/s em không biết chỉnh code trên đây cho dễ nhìn, admin vào edit dùm em với ạ

sử dụng markdown đó bạn

markdown là gì vậy bạn, bạn giải thích rõ hơn xíu đc không

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?